[INFO] cloning repository https://github.com/fulcrumgenomics/fgumi
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/fulcrumgenomics/fgumi" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffulcrumgenomics%2Ffgumi", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffulcrumgenomics%2Ffgumi'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] bed85499d77512d1e0b8c2ac0106eeec031e49fd
[INFO] testing fulcrumgenomics/fgumi against try#0abe69e6c16114311cc2700e972492e64d69c28f for pr-154065-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Ffulcrumgenomics%2Ffgumi" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] removed /workspace/builds/worker-7-tc2/source/.cargo/config.toml
[INFO] removed /workspace/builds/worker-7-tc2/source/rust-toolchain.toml
[INFO] started tweaking git repo https://github.com/fulcrumgenomics/fgumi
[INFO] finished tweaking git repo https://github.com/fulcrumgenomics/fgumi
[INFO] tweaked toml for git repo https://github.com/fulcrumgenomics/fgumi written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/fulcrumgenomics/fgumi on toolchain 0abe69e6c16114311cc2700e972492e64d69c28f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/fulcrumgenomics/fgumi already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 998a4d2afa4666b0f087f1d0404d9745bbd7c7b463a10efa1a628aa71e95ff91
[INFO] running `Command { std: "docker" "start" "-a" "998a4d2afa4666b0f087f1d0404d9745bbd7c7b463a10efa1a628aa71e95ff91", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "998a4d2afa4666b0f087f1d0404d9745bbd7c7b463a10efa1a628aa71e95ff91", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "998a4d2afa4666b0f087f1d0404d9745bbd7c7b463a10efa1a628aa71e95ff91", kill_on_drop: false }`
[INFO] [stdout] 998a4d2afa4666b0f087f1d0404d9745bbd7c7b463a10efa1a628aa71e95ff91
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a045c533b115348d213a10ee9e7e03a8440fec566a1dd6f41f15eb15526aa4e4
[INFO] running `Command { std: "docker" "start" "-a" "a045c533b115348d213a10ee9e7e03a8440fec566a1dd6f41f15eb15526aa4e4", kill_on_drop: false }`
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]    Compiling crossbeam-utils v0.8.21
[INFO] [stderr]    Compiling libm v0.2.16
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling simd-adler32 v0.3.8
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling bytes v1.11.1
[INFO] [stderr]    Compiling zlib-rs v0.6.3
[INFO] [stderr]    Compiling allocator-api2 v0.2.21
[INFO] [stderr]    Compiling foldhash v0.2.0
[INFO] [stderr]    Compiling lexical-util v1.0.7
[INFO] [stderr]    Compiling litemap v0.8.1
[INFO] [stderr]    Compiling writeable v0.6.2
[INFO] [stderr]    Compiling miniz_oxide v0.8.9
[INFO] [stderr]    Compiling icu_properties_data v2.1.2
[INFO] [stderr]    Compiling icu_normalizer_data v2.1.1
[INFO] [stderr]    Compiling bit-vec v0.8.0
[INFO] [stderr]    Compiling zerocopy v0.8.40
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling rand_core v0.10.0
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling lexical-write-integer v1.0.6
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling lexical-parse-integer v1.0.6
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]    Compiling lexical-write-float v1.0.6
[INFO] [stderr]    Compiling regex-automata v0.1.10
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling utf8_iter v1.0.4
[INFO] [stderr]    Compiling lexical-parse-float v1.0.6
[INFO] [stderr]    Compiling percent-encoding v2.3.2
[INFO] [stderr]    Compiling jobserver v0.1.34
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling crossbeam-channel v0.5.15
[INFO] [stderr]    Compiling form_urlencoded v1.2.2
[INFO] [stderr]    Compiling is_terminal_polyfill v1.70.2
[INFO] [stderr]    Compiling cc v1.2.56
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling once_cell v1.21.3
[INFO] [stderr]    Compiling anstyle-query v1.1.5
[INFO] [stderr]    Compiling itoa v1.0.17
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling paste v1.0.15
[INFO] [stderr]    Compiling lexical-core v1.0.6
[INFO] [stderr]    Compiling anstyle v1.0.13
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling anstream v0.6.21
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling crossbeam-epoch v0.9.18
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]    Compiling csv-core v0.1.13
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[INFO] [stderr]    Compiling itoa v0.4.8
[INFO] [stderr]    Compiling ryu v1.0.23
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]    Compiling rayon-core v1.13.0
[INFO] [stderr]    Compiling ordered-float v2.10.1
[INFO] [stderr]    Compiling approx v0.5.1
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling cpufeatures v0.3.0
[INFO] [stderr]    Compiling chacha20 v0.10.0
[INFO] [stderr]    Compiling num-complex v0.4.6
[INFO] [stderr]    Compiling num-integer v0.1.46
[INFO] [stderr]    Compiling crossbeam-deque v0.8.6
[INFO] [stderr]    Compiling rawpointer v0.2.1
[INFO] [stderr]    Compiling strsim v0.11.1
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling clap_lex v1.0.0
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling fgumi-dna v0.1.2 (/opt/rustwide/workdir/crates/fgumi-dna)
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]    Compiling num-rational v0.4.2
[INFO] [stderr]    Compiling rand v0.10.0
[INFO] [stderr]    Compiling clap_builder v4.5.60
[INFO] [stderr]    Compiling flate2 v1.1.9
[INFO] [stderr]    Compiling libdeflate-sys v1.25.2
[INFO] [stderr]    Compiling libz-sys v1.1.24
[INFO] [stderr]    Compiling libgit2-sys v0.18.3+1.9.2
[INFO] [stderr]    Compiling libmimalloc-sys v0.1.44
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling heck v0.4.1
[INFO] [stderr]    Compiling tempfile v3.26.0
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling env_filter v1.0.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling noodles-core v0.19.0
[INFO] [stderr]    Compiling rayon v1.11.0
[INFO] [stderr]    Compiling jiff v0.2.23
[INFO] [stderr]    Compiling strum v0.24.1
[INFO] [stderr]    Compiling mimalloc v0.1.48
[INFO] [stderr]    Compiling rand_distr v0.6.0
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling lru v0.16.3
[INFO] [stderr]    Compiling crossbeam-queue v0.3.12
[INFO] [stderr]    Compiling fgumi-simd-fastq v0.1.2 (/opt/rustwide/workdir/crates/fgumi-simd-fastq)
[INFO] [stderr]    Compiling murmur3 v0.5.2
[INFO] [stderr]    Compiling bytesize v2.3.1
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling strum_macros v0.24.3
[INFO] [stderr]    Compiling libdeflater v1.25.2
[INFO] [stderr]    Compiling noodles-bgzf v0.46.0
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling enum_dispatch v0.3.13
[INFO] [stderr]    Compiling rand_distr v0.4.3
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling noodles-csi v0.54.0
[INFO] [stderr]    Compiling noodles-fasta v0.60.0
[INFO] [stderr]    Compiling safe_arch v0.7.4
[INFO] [stderr]    Compiling safe_arch v1.0.0
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling bgzf v0.3.0
[INFO] [stderr]    Compiling wide v0.7.33
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling noodles-tabix v0.60.0
[INFO] [stderr]    Compiling noodles-sam v0.82.0
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling fgumi-bgzf v0.1.2 (/opt/rustwide/workdir/crates/fgumi-bgzf)
[INFO] [stderr]    Compiling wide v1.1.1
[INFO] [stderr]    Compiling noodles-vcf v0.84.0
[INFO] [stderr]    Compiling clap v4.5.60
[INFO] [stderr]    Compiling fgumi-umi v0.1.2 (/opt/rustwide/workdir/crates/fgumi-umi)
[INFO] [stderr]    Compiling env_logger v0.11.9
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling noodles-bam v0.86.0
[INFO] [stderr]    Compiling simba v0.9.1
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling noodles v0.106.0
[INFO] [stderr]    Compiling fgumi-raw-bam v0.1.2 (/opt/rustwide/workdir/crates/fgumi-raw-bam)
[INFO] [stderr]    Compiling bstr v0.2.17
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling serde-value v0.7.0
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling serde-aux v4.7.0
[INFO] [stderr]    Compiling fgumi-sam v0.1.2 (/opt/rustwide/workdir/crates/fgumi-sam)
[INFO] [stderr]    Compiling csv v1.1.6
[INFO] [stderr]    Compiling read-structure v0.2.0
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling fgoxide v0.6.0
[INFO] [stderr]    Compiling fgumi-metrics v0.1.2 (/opt/rustwide/workdir/crates/fgumi-metrics)
[INFO] [stderr]    Compiling git2 v0.20.4
[INFO] [stderr]    Compiling fgumi-consensus v0.1.2 (/opt/rustwide/workdir/crates/fgumi-consensus)
[INFO] [stderr]    Compiling nalgebra v0.33.2
[INFO] [stderr]    Compiling built v0.8.0
[INFO] [stderr]    Compiling fgumi v0.1.2 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling statrs v0.18.0
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 53s
[INFO] running `Command { std: "docker" "inspect" "a045c533b115348d213a10ee9e7e03a8440fec566a1dd6f41f15eb15526aa4e4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a045c533b115348d213a10ee9e7e03a8440fec566a1dd6f41f15eb15526aa4e4", kill_on_drop: false }`
[INFO] [stdout] a045c533b115348d213a10ee9e7e03a8440fec566a1dd6f41f15eb15526aa4e4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 17af08c551f83ea365c06191a2c98b89d6f28162e00b593ab25e3c750e7a754e
[INFO] running `Command { std: "docker" "start" "-a" "17af08c551f83ea365c06191a2c98b89d6f28162e00b593ab25e3c750e7a754e", kill_on_drop: false }`
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling zerocopy v0.8.40
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling semver v1.0.27
[INFO] [stderr]    Compiling winnow v0.7.15
[INFO] [stderr]    Compiling aho-corasick v1.1.4
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling toml_datetime v1.0.0+spec-1.1.0
[INFO] [stderr]    Compiling alloca v0.4.0
[INFO] [stderr]    Compiling ciborium-io v0.2.2
[INFO] [stderr]    Compiling plotters-backend v0.3.7
[INFO] [stderr]    Compiling itertools v0.13.0
[INFO] [stderr]    Compiling wait-timeout v0.2.1
[INFO] [stderr]    Compiling slab v0.4.12
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]    Compiling same-file v1.0.6
[INFO] [stderr]    Compiling cast v0.3.0
[INFO] [stderr]    Compiling plotters-svg v0.3.7
[INFO] [stderr]    Compiling futures-core v0.3.32
[INFO] [stderr]    Compiling quick-error v1.2.3
[INFO] [stderr]    Compiling relative-path v1.9.3
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling plotters v0.3.7
[INFO] [stderr]    Compiling rstest_macros v0.26.1
[INFO] [stderr]    Compiling walkdir v2.5.0
[INFO] [stderr]    Compiling rusty-fork v0.3.1
[INFO] [stderr]    Compiling page_size v0.6.0
[INFO] [stderr]    Compiling bit-set v0.8.0
[INFO] [stderr]    Compiling oorandom v11.1.5
[INFO] [stderr]    Compiling futures-timer v3.0.3
[INFO] [stderr]    Compiling anes v0.1.6
[INFO] [stderr]    Compiling unarray v0.1.4
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling rand_xorshift v0.4.0
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling criterion-plot v0.8.2
[INFO] [stderr]    Compiling toml_parser v1.0.9+spec-1.1.0
[INFO] [stderr]    Compiling toml_edit v0.25.4+spec-1.1.0
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling proc-macro-crate v3.5.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling zerofrom-derive v0.1.6
[INFO] [stderr]    Compiling yoke-derive v0.8.1
[INFO] [stderr]    Compiling zerocopy-derive v0.8.40
[INFO] [stderr]    Compiling zerovec-derive v0.11.2
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling bytemuck_derive v1.10.2
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling enum_dispatch v0.3.13
[INFO] [stderr]    Compiling bstr v1.12.1
[INFO] [stderr]    Compiling zerofrom v0.1.6
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling yoke v0.8.1
[INFO] [stderr]    Compiling bytemuck v1.25.0
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling zerotrie v0.2.3
[INFO] [stderr]    Compiling safe_arch v0.7.4
[INFO] [stderr]    Compiling safe_arch v1.0.0
[INFO] [stderr]    Compiling bgzf v0.3.0
[INFO] [stderr]    Compiling zerovec v0.11.5
[INFO] [stderr]    Compiling env_filter v1.0.0
[INFO] [stderr]    Compiling fgumi-bgzf v0.1.2 (/opt/rustwide/workdir/crates/fgumi-bgzf)
[INFO] [stderr]    Compiling env_logger v0.11.9
[INFO] [stderr]    Compiling noodles-core v0.19.0
[INFO] [stderr]    Compiling wide v0.7.33
[INFO] [stderr]    Compiling wide v1.1.1
[INFO] [stderr]    Compiling noodles-csi v0.54.0
[INFO] [stderr]    Compiling noodles-fasta v0.60.0
[INFO] [stderr]    Compiling clap v4.5.60
[INFO] [stderr]    Compiling tinystr v0.8.2
[INFO] [stderr]    Compiling potential_utf v0.1.4
[INFO] [stderr]    Compiling icu_collections v2.1.1
[INFO] [stderr]    Compiling noodles-tabix v0.60.0
[INFO] [stderr]    Compiling noodles-sam v0.82.0
[INFO] [stderr]    Compiling icu_locale_core v2.1.1
[INFO] [stderr]    Compiling noodles-vcf v0.84.0
[INFO] [stderr]    Compiling icu_provider v2.1.1
[INFO] [stderr]    Compiling rstest v0.26.1
[INFO] [stderr]    Compiling bstr v0.2.17
[INFO] [stderr]    Compiling serde-value v0.7.0
[INFO] [stderr]    Compiling tinytemplate v1.2.1
[INFO] [stderr]    Compiling icu_normalizer v2.1.1
[INFO] [stderr]    Compiling icu_properties v2.1.2
[INFO] [stderr]    Compiling serde-aux v4.7.0
[INFO] [stderr]    Compiling noodles-bam v0.86.0
[INFO] [stderr]    Compiling csv v1.1.6
[INFO] [stderr]    Compiling read-structure v0.2.0
[INFO] [stderr]    Compiling simba v0.9.1
[INFO] [stderr]    Compiling fgoxide v0.6.0
[INFO] [stderr]    Compiling noodles v0.106.0
[INFO] [stderr]    Compiling fgumi-raw-bam v0.1.2 (/opt/rustwide/workdir/crates/fgumi-raw-bam)
[INFO] [stderr]    Compiling fgumi-metrics v0.1.2 (/opt/rustwide/workdir/crates/fgumi-metrics)
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling fgumi-sam v0.1.2 (/opt/rustwide/workdir/crates/fgumi-sam)
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling git2 v0.20.4
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling half v2.7.1
[INFO] [stderr]    Compiling fgumi-consensus v0.1.2 (/opt/rustwide/workdir/crates/fgumi-consensus)
[INFO] [stderr]    Compiling fgumi-umi v0.1.2 (/opt/rustwide/workdir/crates/fgumi-umi)
[INFO] [stderr]    Compiling ciborium-ll v0.2.2
[INFO] [stderr]    Compiling ciborium v0.2.2
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling proptest v1.10.0
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling criterion v0.8.2
[INFO] [stderr]    Compiling rand_distr v0.4.3
[INFO] [stderr]    Compiling nalgebra v0.33.2
[INFO] [stderr]    Compiling built v0.8.0
[INFO] [stderr]    Compiling fgumi v0.1.2 (/opt/rustwide/workdir)
[INFO] [stderr]    Compiling statrs v0.18.0
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 2m 17s
[INFO] running `Command { std: "docker" "inspect" "17af08c551f83ea365c06191a2c98b89d6f28162e00b593ab25e3c750e7a754e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "17af08c551f83ea365c06191a2c98b89d6f28162e00b593ab25e3c750e7a754e", kill_on_drop: false }`
[INFO] [stdout] 17af08c551f83ea365c06191a2c98b89d6f28162e00b593ab25e3c750e7a754e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+0abe69e6c16114311cc2700e972492e64d69c28f" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 5f885291b28db3af42711b552c226fb780b6328490cf55499de612164403776c
[INFO] running `Command { std: "docker" "start" "-a" "5f885291b28db3af42711b552c226fb780b6328490cf55499de612164403776c", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.61s
[INFO] [stderr]      Running unittests src/lib/mod.rs (/opt/rustwide/target/debug/deps/fgumi_lib-d58c3662aae6a2f5)
[INFO] [stdout] 
[INFO] [stdout] running 933 tests
[INFO] [stdout] test bam_io::tests::test_chained_reader_empty_buffer ... ok
[INFO] [stdout] test bam_io::tests::test_chained_reader_empty_remaining ... ok
[INFO] [stdout] test bam_io::tests::test_create_bam_writer_invalid_path ... ok
[INFO] [stdout] test bam_io::tests::test_bgzf_writer_finish_single_threaded ... ok
[INFO] [stdout] test bam_io::tests::test_bgzf_writer_flush_single_threaded ... ok
[INFO] [stdout] test bam_io::tests::test_create_optional_bam_writer_none ... ok
[INFO] [stdout] test bam_io::tests::test_chained_reader ... ok
[INFO] [stdout] test bam_io::tests::test_bgzf_writer_finish_multithreaded ... ok
[INFO] [stdout] test bam_io::tests::test_bgzf_writer_write_single_threaded ... ok
[INFO] [stdout] test bam_io::tests::test_indexing_writer_rejects_stdout ... ok
[INFO] [stdout] test bam_io::tests::test_create_bam_writer_multithreaded ... ok
[INFO] [stdout] test bam_io::tests::test_create_bam_reader_nonexistent_file ... ok
[INFO] [stdout] test bam_io::tests::test_create_bam_reader_for_pipeline_nonexistent_file ... ok
[INFO] [stdout] test bam_io::tests::test_roundtrip_write_and_read ... ok
[INFO] [stdout] test batched_sam_reader::tests::test_basic_reading ... ok
[INFO] [stdout] test bam_io::tests::test_write_raw_bytes ... ok
[INFO] [stdout] test batched_sam_reader::tests::test_batch_boundary_detection ... ok
[INFO] [stdout] test bam_io::tests::test_create_indexing_bam_writer ... ok
[INFO] [stdout] test bam_io::tests::test_create_bam_writer ... ok
[INFO] [stdout] test bam_io::tests::test_create_optional_bam_writer_some ... ok
[INFO] [stdout] test bam_io::tests::test_create_bam_reader_for_pipeline_from_file ... ok
[INFO] [stdout] test batched_sam_reader::tests::test_bufread_empty_input ... ok
[INFO] [stdout] test bam_io::tests::test_indexing_bam_writer_produces_valid_bam ... ok
[INFO] [stdout] test bam_io::tests::test_is_stdin_path ... ok
[INFO] [stdout] test batched_sam_reader::tests::test_bufread_basic_read ... ok
[INFO] [stdout] test batched_sam_reader::tests::test_bufread_consume ... ok
[INFO] [stdout] test batched_sam_reader::tests::test_bufread_no_growth_on_small_batch ... ok
[INFO] [stdout] test batched_sam_reader::tests::test_bufread_fill_buf ... ok
[INFO] [stdout] test bam_io::tests::test_indexing_bam_writer_unmapped_records ... ok
[INFO] [stdout] test errors::tests::test_invalid_frequency ... ok
[INFO] [stdout] test errors::tests::test_invalid_parameter ... ok
[INFO] [stdout] test errors::tests::test_reference_not_found ... ok
[INFO] [stdout] test fastq::tests::test_cell_barcode_segments ... ok
[INFO] [stdout] test batched_sam_reader::tests::test_never_shrinks ... ok
[INFO] [stdout] test errors::tests::test_invalid_file_format ... ok
[INFO] [stdout] test batched_sam_reader::tests::test_proactive_growth ... ok
[INFO] [stdout] test batched_sam_reader::tests::test_buffer_growth_on_large_batch ... ok
[INFO] [stdout] test fastq::tests::test_fastq_set_with_skip_reason_only ... ok
[INFO] [stdout] test batched_sam_reader::tests::test_empty_input ... ok
[INFO] [stdout] test batched_sam_reader::tests::test_bufread_growth_on_large_batch ... ok
[INFO] [stdout] test fastq::tests::test_cell_barcode_segments_empty ... ok
[INFO] [stdout] test fastq::tests::test_molecular_barcode_segments ... ok
[INFO] [stdout] test fastq::tests::test_read_set_iterator_basic ... ok
[INFO] [stdout] test fastq::tests::test_read_set_iterator_variable_length_segment ... ok
[INFO] [stdout] test fastq::tests::test_read_set_iterator_skip_too_few_bases ... ok
[INFO] [stdout] test batched_sam_reader::tests::test_header_lines_with_advance ... ok
[INFO] [stdout] test fastq::tests::test_sample_barcode_segments ... ok
[INFO] [stdout] test fastq::tests::test_skip_reason_display ... ok
[INFO] [stdout] test fastq::tests::test_skip_reason_from_str_valid ... ok
[INFO] [stdout] test fastq::tests::test_template_segments ... ok
[INFO] [stdout] test grouper::tests::test_build_templates_empty ... ok
[INFO] [stdout] test grouper::tests::test_build_templates_from_raw_bytes_paired ... ok
[INFO] [stdout] test grouper::tests::test_build_templates_multiple_qnames ... ok
[INFO] [stdout] test grouper::tests::test_build_templates_from_raw_bytes ... ok
[INFO] [stdout] test grouper::tests::test_build_templates_paired_same_name_hash ... ok
[INFO] [stdout] test grouper::tests::test_build_templates_single_record ... ok
[INFO] [stdout] test grouper::tests::test_fastq_grouper_finish_empty ... ok
[INFO] [stdout] test grouper::tests::test_fastq_grouper_multiple_templates ... ok
[INFO] [stdout] test grouper::tests::test_fastq_grouper_partial_then_complete ... ok
[INFO] [stdout] test grouper::tests::test_parse_fastq_incomplete_record ... ok
[INFO] [stdout] test grouper::tests::test_parse_fastq_records_multiple ... ok
[INFO] [stdout] test grouper::tests::test_parse_fastq_with_leftover ... ok
[INFO] [stdout] test grouper::tests::test_parse_single_fastq_record ... ok
[INFO] [stdout] test grouper::tests::test_raw_position_group_batch_weight ... ok
[INFO] [stdout] test grouper::tests::test_fastq_grouper_out_of_sync ... ok
[INFO] [stdout] test grouper::tests::test_raw_position_group_batch_weight_single ... ok
[INFO] [stdout] test grouper::tests::test_raw_position_group_memory_estimate ... ok
[INFO] [stdout] test grouper::tests::test_record_position_grouper_default_impl ... ok
[INFO] [stdout] test bam_io::tests::test_bgzf_writer_write_multithreaded ... ok
[INFO] [stdout] test grouper::tests::test_record_position_grouper_different_positions ... ok
[INFO] [stdout] test grouper::tests::test_record_position_grouper_does_not_coalesce_different_name_hash ... ok
[INFO] [stdout] test grouper::tests::test_record_position_grouper_empty ... ok
[INFO] [stdout] test grouper::tests::test_record_position_grouper_groups_records_by_position ... ok
[INFO] [stdout] test grouper::tests::test_record_position_grouper_mc_validation_fails_without_mc ... ok
[INFO] [stdout] test bam_io::tests::test_is_stdout_path ... ok
[INFO] [stdout] test grouper::tests::test_record_position_grouper_mc_validation_passes_with_mc ... ok
[INFO] [stdout] test grouper::tests::test_record_position_grouper_mc_validation_skips_unmapped_mate ... ok
[INFO] [stdout] test grouper::tests::test_record_position_grouper_mc_validation_skips_unpaired ... ok
[INFO] [stdout] test bam_io::tests::test_indexing_bam_writer_with_records ... ok
[INFO] [stdout] test fastq::tests::test_combine_readsets ... ok
[INFO] [stdout] test grouper::tests::test_fastq_grouper_paired ... ok
[INFO] [stdout] test bam_io::tests::test_roundtrip_write_and_read_multithreaded ... ok
[INFO] [stdout] test grouper::tests::test_record_position_grouper_same_position_multiple_records ... ok
[INFO] [stdout] test grouper::tests::test_single_raw_record_grouper_rejects_parsed ... ok
[INFO] [stdout] test grouper::tests::test_record_position_grouper_single_unpaired_record ... ok
[INFO] [stdout] test grouper::tests::test_record_position_grouper_skips_secondary ... ok
[INFO] [stdout] test grouper::tests::test_record_position_grouper_coalesces_unmapped_mate_by_name_hash ... ok
[INFO] [stdout] test grouper::tests::test_single_raw_record_grouper_emits_each_record ... ok
[INFO] [stdout] test grouper::tests::test_record_position_grouper_paired_same_position_key ... ok
[INFO] [stdout] test grouper::tests::test_single_record_grouper_empty ... ok
[INFO] [stdout] test bam_io::tests::test_bgzf_writer_flush_multithreaded ... ok
[INFO] [stdout] test grouper::tests::test_strip_read_suffix ... ok
[INFO] [stdout] test header::tests::test_add_pg_record_chains_to_non_fgumi ... ok
[INFO] [stdout] test header::tests::test_add_pg_record_empty_command_line ... ok
[INFO] [stdout] test header::tests::test_add_pg_record_empty_header ... ok
[INFO] [stdout] test header::tests::test_get_last_program_id_chained ... ok
[INFO] [stdout] test header::tests::test_add_pg_record_with_existing_fgumi ... ok
[INFO] [stdout] test header::tests::test_make_unique_program_id_multiple_collisions ... ok
[INFO] [stdout] test header::tests::test_get_last_program_id_single ... ok
[INFO] [stdout] test header::tests::test_make_unique_program_id_with_collision ... ok
[INFO] [stdout] test logging::tests::test_format_percent ... ok
[INFO] [stdout] test logging::tests::test_format_rate ... ok
[INFO] [stdout] test header::tests::test_add_pg_record_chains_to_empty_program ... ok
[INFO] [stdout] test logging::tests::test_log_consensus_summary ... ok
[INFO] [stdout] test grouper::tests::test_single_raw_record_grouper_empty ... ok
[INFO] [stdout] test logging::tests::test_log_umi_grouping_summary ... ok
[INFO] [stdout] test header::tests::test_get_last_program_id_empty ... ok
[INFO] [stdout] test header::tests::test_add_pg_record_write_to_bam ... ok
[INFO] [stdout] test header::tests::test_add_pg_to_builder ... ok
[INFO] [stdout] test header::tests::test_make_unique_program_id_no_collision ... ok
[INFO] [stdout] test logging::tests::test_format_duration ... ok
[INFO] [stdout] test mi_group::tests::test_custom_tag ... ok
[INFO] [stdout] test mi_group::tests::test_empty_iterator ... ok
[INFO] [stdout] test mi_group::tests::test_mi_group_batch_clear ... ok
[INFO] [stdout] test mi_group::tests::test_mi_group_batch_default ... ok
[INFO] [stdout] test mi_group::tests::test_mi_group_batch_len_and_is_empty ... ok
[INFO] [stdout] test mi_group::tests::test_mi_group_batch_memory_estimate ... ok
[INFO] [stdout] test logging::tests::test_operation_timer ... ok
[INFO] [stdout] test fastq::tests::test_read_set_iterator_multiple_records ... ok
[INFO] [stdout] test mi_group::tests::test_mi_group_batch_weight ... ok
[INFO] [stdout] test mi_group::tests::test_mi_group_batch_new ... ok
[INFO] [stdout] test mi_group::tests::test_mi_group_new ... ok
[INFO] [stdout] test mi_group::tests::test_mi_grouper_batch_size_triggers ... ok
[INFO] [stdout] test mi_group::tests::test_mi_group_batch_with_capacity ... ok
[INFO] [stdout] test mi_group::tests::test_mi_group_memory_estimate ... ok
[INFO] [stdout] test mi_group::tests::test_mi_group_batch_weight_single ... ok
[INFO] [stdout] test mi_group::tests::test_mi_grouper_finish_empty ... ok
[INFO] [stdout] test mi_group::tests::test_mi_grouper_multiple_groups ... ok
[INFO] [stdout] test mi_group::tests::test_mi_grouper_with_filter_and_transform ... ok
[INFO] [stdout] test mi_group::tests::test_multiple_groups ... ok
[INFO] [stdout] test mi_group::tests::test_mi_grouper_finish_idempotent ... ok
[INFO] [stdout] test mi_group::tests::test_raw_cell_tag_composite_grouping ... ok
[INFO] [stdout] test mi_group::tests::test_mi_grouper_has_pending_states ... ok
[INFO] [stdout] test mi_group::tests::test_mi_grouper_record_without_mi_gets_empty_string ... ok
[INFO] [stdout] test mi_group::tests::test_mi_grouper_rejects_raw_records ... ok
[INFO] [stdout] test mi_group::tests::test_mi_grouper_single_group ... ok
[INFO] [stdout] test mi_group::tests::test_raw_cell_tag_missing_cell_value ... ok
[INFO] [stdout] test mi_group::tests::test_raw_cell_tag_none_groups_by_mi_only ... ok
[INFO] [stdout] test mi_group::tests::test_raw_cell_tag_with_transform ... ok
[INFO] [stdout] test mi_group::tests::test_raw_custom_tag ... ok
[INFO] [stdout] test mi_group::tests::test_raw_get_mi_missing_tag ... ok
[INFO] [stdout] test mi_group::tests::test_raw_empty_iterator ... ok
[INFO] [stdout] test mi_group::tests::test_raw_get_mi_with_transform ... ok
[INFO] [stdout] test mi_group::tests::test_raw_get_mi_without_transform ... ok
[INFO] [stdout] test mi_group::tests::test_raw_get_mi_wrong_tag ... ok
[INFO] [stdout] test mi_group::tests::test_raw_grouper_finish_idempotent ... ok
[INFO] [stdout] test mi_group::tests::test_raw_grouper_groups_records_without_mi_under_empty_key ... ok
[INFO] [stdout] test mi_group::tests::test_raw_grouper_has_pending_states ... ok
[INFO] [stdout] test mi_group::tests::test_raw_grouper_finish_empty ... ok
[INFO] [stdout] test mi_group::tests::test_raw_grouper_batch_size_triggers ... ok
[INFO] [stdout] test mi_group::tests::test_raw_grouper_multiple_mi_groups ... ok
[INFO] [stdout] test mi_group::tests::test_raw_grouper_single_mi_group ... ok
[INFO] [stdout] test mi_group::tests::test_raw_mi_group_batch_default ... ok
[INFO] [stdout] test mi_group::tests::test_raw_grouper_rejects_parsed_records ... ok
[INFO] [stdout] test mi_group::tests::test_raw_grouper_with_filter_and_transform ... ok
[INFO] [stdout] test mi_group::tests::test_raw_mi_group_batch_memory_estimate ... ok
[INFO] [stdout] test mi_group::tests::test_raw_mi_group_batch_new ... ok
[INFO] [stdout] test mi_group::tests::test_raw_mi_group_batch_weight_method ... ok
[INFO] [stdout] test mi_group::tests::test_raw_mi_group_memory_estimate ... ok
[INFO] [stdout] test mi_group::tests::test_raw_mi_group_batch_weight ... ok
[INFO] [stdout] test mi_group::tests::test_raw_multiple_groups ... ok
[INFO] [stdout] test mi_group::tests::test_raw_mi_group_new ... ok
[INFO] [stdout] test mi_group::tests::test_raw_with_transform ... ok
[INFO] [stdout] test mi_group::tests::test_raw_single_group ... ok
[INFO] [stdout] test mi_group::tests::test_raw_with_transform_empty ... ok
[INFO] [stdout] test mi_group::tests::test_raw_skips_records_without_mi_tag ... ok
[INFO] [stdout] test mi_group::tests::test_transform_empty_iterator ... ok
[INFO] [stdout] test mi_group::tests::test_skips_records_without_mi_tag ... ok
[INFO] [stdout] test mi_group::tests::test_single_group ... ok
[INFO] [stdout] test mi_group::tests::test_transform_custom_function ... ok
[INFO] [stdout] test mi_group::tests::test_transform_groups_by_base_mi ... ok
[INFO] [stdout] test mi_group::tests::test_transform_single_group ... ok
[INFO] [stdout] test progress::tests::test_log_if_needed_returns_correctly ... ok
[INFO] [stdout] test progress::tests::test_crossing_multiple_intervals ... ok
[INFO] [stdout] test progress::tests::test_count ... ok
[INFO] [stdout] test progress::tests::test_log_if_needed_zero ... ok
[INFO] [stdout] test progress::tests::test_progress_tracker_new ... ok
[INFO] [stdout] test progress::tests::test_progress_tracker_with_interval ... ok
[INFO] [stdout] test read_info::tests::get_unclipped_position_tests::test_complex_cigar_with_insertions_deletions ... ok
[INFO] [stdout] test read_info::tests::get_unclipped_position_tests::test_forward_strand_hard_and_soft_clip ... ok
[INFO] [stdout] test read_info::tests::get_unclipped_position_tests::test_forward_strand_hard_clip_only ... ok
[INFO] [stdout] test read_info::tests::get_unclipped_position_tests::test_forward_strand_soft_clip_only ... ok
[INFO] [stdout] test progress::tests::test_thread_safety ... ok
[INFO] [stdout] test read_info::tests::get_unclipped_position_tests::test_no_clipping ... ok
[INFO] [stdout] test read_info::tests::get_unclipped_position_tests::test_reverse_strand_hard_clip_only ... ok
[INFO] [stdout] test read_info::tests::get_unclipped_position_tests::test_reverse_strand_soft_clip_only ... ok
[INFO] [stdout] test read_info::tests::get_unclipped_position_tests::test_reverse_strand_hard_and_soft_clip ... ok
[INFO] [stdout] test read_info::tests::test_different_chromosomes ... ok
[INFO] [stdout] test bam_io::tests::test_indexing_bam_writer_multithreaded ... ok
[INFO] [stdout] test read_info::tests::test_ord_includes_cell_barcode ... ok
[INFO] [stdout] test read_info::tests::test_read_info_comparison ... ok
[INFO] [stdout] test read_info::tests::test_read_info_normalizes_order ... ok
[INFO] [stdout] test read_info::tests::test_read_info_ordering ... ok
[INFO] [stdout] test read_info::tests::test_read_info_single ... ok
[INFO] [stdout] test batched_sam_reader::tests::test_partial_line_preserved ... ok
[INFO] [stdout] test read_info::tests::test_single_sorts_after_paired ... ok
[INFO] [stdout] test read_info::tests::test_single_uses_unknown_values ... ok
[INFO] [stdout] test read_info::tests::test_strand_to_byte ... ok
[INFO] [stdout] test reference::tests::test_all_n_sequence ... ok
[INFO] [stdout] test reference::tests::test_all_sequences_loaded ... ok
[INFO] [stdout] test reference::tests::test_base_at ... ok
[INFO] [stdout] test reference::tests::test_fetch_full_sequence ... ok
[INFO] [stdout] test reference::tests::test_fetch_last_base ... ok
[INFO] [stdout] test reference::tests::test_fetch_subsequence ... ok
[INFO] [stdout] test reference::tests::test_find_dict_path_appending_convention ... ok
[INFO] [stdout] test read_info::tests::get_unclipped_position_tests::test_unmapped_read ... ok
[INFO] [stdout] test read_info::tests::test_build_library_lookup ... ok
[INFO] [stdout] test read_info::tests::test_normalization_with_strand_tiebreaker ... ok
[INFO] [stdout] test reference::tests::test_find_dict_path_fasta_appending_convention ... ok
[INFO] [stdout] test read_info::tests::test_read_info_unmapped ... ok
[INFO] [stdout] test reference::tests::test_find_dict_path_replacing_convention ... ok
[INFO] [stdout] test reference::tests::test_find_dict_path_prefers_replacing_convention ... ok
[INFO] [stdout] test reference::tests::test_mixed_case_all_bases ... ok
[INFO] [stdout] test reference::tests::test_multiple_chromosomes_isolation ... ok
[INFO] [stdout] test reference::tests::test_find_dict_path_fasta_extension ... ok
[INFO] [stdout] test reference::tests::test_long_sequence_boundaries ... ok
[INFO] [stdout] test reference::tests::test_n_bases_at_various_positions ... ok
[INFO] [stdout] test reference::tests::test_find_dict_path_not_found ... ok
[INFO] [stdout] test reference::tests::test_position_one_based ... ok
[INFO] [stdout] test reference::tests::test_reference_case_preserved ... ok
[INFO] [stdout] test reference::tests::test_runs_of_n_bases ... ok
[INFO] [stdout] test reorder_buffer::tests::test_can_pop_tracking ... ok
[INFO] [stdout] test reorder_buffer::tests::test_drain_ready ... ok
[INFO] [stdout] test reorder_buffer::tests::test_gap_blocks_progress ... ok
[INFO] [stdout] test reference::tests::test_single_base_sequence ... ok
[INFO] [stdout] test reorder_buffer::tests::test_memory_tracking ... ok
[INFO] [stdout] test reorder_buffer::tests::test_out_of_order_insertion ... ok
[INFO] [stdout] test reorder_buffer::tests::test_in_order_insertion ... ok
[INFO] [stdout] test reorder_buffer::tests::test_large_sequence_numbers ... ok
[INFO] [stdout] test reorder_buffer::tests::test_sparse_insertion ... ok
[INFO] [stdout] test reorder_buffer::tests::test_would_accept_needed_serial ... ok
[INFO] [stdout] test reorder_buffer::tests::test_would_accept_over_limit ... ok
[INFO] [stdout] test reorder_buffer::tests::test_would_accept_no_limit ... ok
[INFO] [stdout] test reorder_buffer::tests::test_would_accept_stuck ... ok
[INFO] [stdout] test sort::external::tests::test_create_output_header_coordinate ... ok
[INFO] [stdout] test sort::external::tests::test_create_output_header_queryname ... ok
[INFO] [stdout] test sort::external::tests::test_create_output_header_template ... ok
[INFO] [stdout] test sort::external::tests::test_sorter_builder_pg_info ... ok
[INFO] [stdout] test sort::external::tests::test_estimate_record_size ... ok
[INFO] [stdout] test sort::external::tests::test_sorter_defaults ... ok
[INFO] [stdout] test sort::external::tests::test_sorter_builder_temp_dir ... ok
[INFO] [stdout] test sort::external::tests::test_sorter_creation ... ok
[INFO] [stdout] test sort::inline_buffer::tests::test_packed_coord_key_ordering ... ok
[INFO] [stdout] test sort::inline_buffer::tests::test_par_sort_into_chunks_coordinate_parallel ... ok
[INFO] [stdout] test sort::inline_buffer::tests::test_par_sort_into_chunks_coordinate_single_threaded ... ok
[INFO] [stdout] test sort::inline_buffer::tests::test_par_sort_into_chunks_parallel_path ... ok
[INFO] [stdout] test sort::inline_buffer::tests::test_par_sort_into_chunks_single_threaded_fallback ... ok
[INFO] [stdout] test sort::inline_buffer::tests::test_parallel_radix_sort ... ok
[INFO] [stdout] test sort::inline_buffer::tests::test_parallel_radix_sort_stability ... ok
[INFO] [stdout] test sort::inline_buffer::tests::test_parallel_radix_sort_template_refs_stability ... ok
[INFO] [stdout] test sort::inline_buffer::tests::test_radix_sort_all_same_keys ... ok
[INFO] [stdout] test sort::inline_buffer::tests::test_radix_sort_all_zero_keys ... ok
[INFO] [stdout] test sort::inline_buffer::tests::test_radix_sort_empty ... ok
[INFO] [stdout] test sort::inline_buffer::tests::test_radix_sort_large ... ok
[INFO] [stdout] test sort::inline_buffer::tests::test_radix_sort_max_key ... ok
[INFO] [stdout] test sort::inline_buffer::tests::test_radix_sort_record_refs ... ok
[INFO] [stdout] test sort::inline_buffer::tests::test_radix_sort_single ... ok
[INFO] [stdout] test sort::inline_buffer::tests::test_radix_sort_template_refs_stability ... ok
[INFO] [stdout] test sort::inline_buffer::tests::test_template_key_cb_hash_between_secondary_and_tertiary ... ok
[INFO] [stdout] test sort::inline_buffer::tests::test_template_key_cb_hash_ordering ... ok
[INFO] [stdout] test sort::inline_buffer::tests::test_template_key_cb_hash_zero_sorts_first ... ok
[INFO] [stdout] test sort::inline_buffer::tests::test_template_key_core_cmp_includes_cb_hash ... ok
[INFO] [stdout] test sort::inline_buffer::tests::test_template_key_default_has_zero_cb_hash ... ok
[INFO] [stdout] test sort::inline_buffer::tests::test_template_key_ordering ... ok
[INFO] [stdout] test sort::inline_buffer::tests::test_template_key_serialization_with_cb_hash ... ok
[INFO] [stdout] test sort::inline_buffer::tests::test_template_key_unmapped_with_cb_hash ... ok
[INFO] [stdout] test sort::inline_buffer::tests::test_template_key_zeroed_has_zero_cb_hash ... ok
[INFO] [stdout] test sort::inline_buffer::tests::test_template_record_buffer_sort_stability ... ok
[INFO] [stdout] test sort::keys::tests::test_coordinate_key_ordering ... ok
[INFO] [stdout] test sort::keys::tests::test_coordinate_key_unmapped_last ... ok
[INFO] [stdout] test sort::keys::tests::test_from_tag_value_float_array_returns_none ... ok
[INFO] [stdout] test sort::keys::tests::test_from_tag_value_int16_fallback ... ok
[INFO] [stdout] test sort::keys::tests::test_from_tag_value_int32_fast_path ... ok
[INFO] [stdout] test sort::keys::tests::test_from_tag_value_int32_wrong_length ... ok
[INFO] [stdout] test sort::keys::tests::test_from_tag_value_non_array_returns_none ... ok
[INFO] [stdout] test sort::keys::tests::test_natural_compare_basic ... ok
[INFO] [stdout] test sort::keys::tests::test_natural_compare_empty ... ok
[INFO] [stdout] test sort::keys::tests::test_natural_compare_mixed ... ok
[INFO] [stdout] test sort::keys::tests::test_natural_compare_numeric ... ok
[INFO] [stdout] test sort::keys::tests::test_primary_alignment_info_from_record ... ok
[INFO] [stdout] test sort::keys::tests::test_primary_alignment_info_missing ... ok
[INFO] [stdout] test sort::keys::tests::test_primary_alignment_info_new_stores_values_unchanged ... ok
[INFO] [stdout] test sort::keys::tests::test_primary_alignment_info_new_with_max_values ... ok
[INFO] [stdout] test sort::keys::tests::test_primary_alignment_info_new_with_negative_positions ... ok
[INFO] [stdout] test sort::keys::tests::test_primary_alignment_info_new_with_zero_values ... ok
[INFO] [stdout] test sort::keys::tests::test_primary_alignment_info_position_order_is_caller_responsibility ... ok
[INFO] [stdout] test sort::keys::tests::test_primary_alignment_info_roundtrip ... ok
[INFO] [stdout] test sort::keys::tests::test_primary_alignment_info_roundtrip_with_negative_positions ... ok
[INFO] [stdout] test sort::keys::tests::test_queryname_flag_order_complete_sort_order ... ok
[INFO] [stdout] test sort::keys::tests::test_queryname_flag_order_edge_case_both_r1_r2 ... ok
[INFO] [stdout] test sort::keys::tests::test_queryname_flag_order_exact_transformation_values ... ok
[INFO] [stdout] test sort::keys::tests::test_queryname_flag_order_from_test_data ... ok
[INFO] [stdout] test sort::keys::tests::test_queryname_flag_order_irrelevant_flags_do_not_affect_order ... ok
[INFO] [stdout] test sort::keys::tests::test_queryname_flag_order_is_const ... ok
[INFO] [stdout] test sort::keys::tests::test_queryname_flag_order_none_before_r1_before_r2 ... ok
[INFO] [stdout] test sort::keys::tests::test_queryname_flag_order_primary_before_supplementary_before_secondary ... ok
[INFO] [stdout] test sort::keys::tests::test_queryname_flag_order_r1_before_r2 ... ok
[INFO] [stdout] test sort::keys::tests::test_queryname_flag_order_real_world_flags ... ok
[INFO] [stdout] test sort::loser_tree::tests::test_all_same_keys_stable ... ok
[INFO] [stdout] test sort::loser_tree::tests::test_interleaved_merge ... ok
[INFO] [stdout] test sort::loser_tree::tests::test_k_equals_7 ... ok
[INFO] [stdout] test sort::loser_tree::tests::test_large_fan_in ... ok
[INFO] [stdout] test sort::loser_tree::tests::test_many_sources_descending_keys ... ok
[INFO] [stdout] test sort::loser_tree::tests::test_merge_longer_sequences ... ok
[INFO] [stdout] test sort::loser_tree::tests::test_merge_three_sorted_sequences ... ok
[INFO] [stdout] test sort::loser_tree::tests::test_merge_with_duplicates_stable ... ok
[INFO] [stdout] test sort::loser_tree::tests::test_non_power_of_two ... ok
[INFO] [stdout] test sort::loser_tree::tests::test_single_source ... ok
[INFO] [stdout] test sort::loser_tree::tests::test_three_sources ... ok
[INFO] [stdout] test sort::loser_tree::tests::test_two_sources ... ok
[INFO] [stdout] test sort::pipeline::tests::test_config_custom_values ... ok
[INFO] [stdout] test sort::pipeline::tests::test_config_default ... ok
[INFO] [stdout] test sort::pipeline::tests::test_config_single_thread ... ok
[INFO] [stdout] test sort::pipeline::tests::test_merge_buffer_size ... ok
[INFO] [stdout] test sort::pipeline::tests::test_merge_entry_equal_keys ... ok
[INFO] [stdout] test sort::pipeline::tests::test_merge_entry_greater_than ... ok
[INFO] [stdout] test fastq::tests::test_combine_readsets_fails_on_empty_vector - should panic ... ok
[INFO] [stdout] test fastq::tests::test_read_set_iterator_panic_on_too_few_bases_without_skip - should panic ... ok
[INFO] [stdout] test fastq::tests::test_skip_reason_from_str_invalid ... ok
[INFO] [stdout] test bam_io::tests::test_create_optional_bam_writer_invalid_path ... ok
[INFO] [stdout] test mi_group::tests::test_error_propagation ... ok
[INFO] [stdout] test mi_group::tests::test_invalid_tag_length - should panic ... ok
[INFO] [stdout] test mi_group::tests::test_raw_error_propagation ... ok
[INFO] [stdout] test mi_group::tests::test_raw_error_with_no_pending_group ... ok
[INFO] [stdout] test mi_group::tests::test_raw_invalid_tag_length - should panic ... ok
[INFO] [stdout] test mi_group::tests::test_raw_with_transform_invalid_tag_length - should panic ... ok
[INFO] [stdout] test mi_group::tests::test_transform_error_propagation ... ok
[INFO] [stdout] test reference::tests::test_nonexistent_sequence ... ok
[INFO] [stdout] test reference::tests::test_out_of_bounds ... ok
[INFO] [stdout] test sort::inline_buffer::tests::proptest_msd::msd_sort_matches_reference ... ok
[INFO] [stdout] test sort::pipeline::tests::test_merge_entry_ordering ... ok
[INFO] [stdout] test sort::pipeline::tests::test_merge_entry_partial_eq ... ok
[INFO] [stdout] test sort::pipeline::tests::test_merge_entry_ordering_ignores_chunk_idx ... ok
[INFO] [stdout] test sort::pipeline::tests::test_merge_entry_string_keys ... ok
[INFO] [stdout] test sort::radix::tests::test_bytes_needed ... ok
[INFO] [stdout] test sort::radix::tests::test_hybrid_sort ... ok
[INFO] [stdout] test sort::radix::tests::test_insertion_sort ... ok
[INFO] [stdout] test sort::radix::tests::test_insertion_sort_by_key ... ok
[INFO] [stdout] test sort::radix::tests::test_pack_coordinate_for_radix ... ok
[INFO] [stdout] test sort::radix::tests::test_packed_coordinate_key ... ok
[INFO] [stdout] test sort::radix::tests::test_radix_sort_adaptive ... ok
[INFO] [stdout] test sort::radix::tests::test_radix_sort_large ... ok
[INFO] [stdout] test sort::radix::tests::test_radix_sort_small ... ok
[INFO] [stdout] test sort::raw::tests::test_create_output_header_template_coordinate ... ok
[INFO] [stdout] test sort::raw::tests::test_extract_template_key_cb_hash_is_deterministic ... ok
[INFO] [stdout] test sort::raw::tests::test_extract_template_key_cb_absent_has_zero_hash ... ok
[INFO] [stdout] test sort::radix::tests::test_packed_coordinate_key_unmapped ... ok
[INFO] [stdout] test sort::raw::tests::test_create_output_header_coordinate ... ok
[INFO] [stdout] test sort::raw::tests::test_find_rg_tag::case_2_absent ... ok
[INFO] [stdout] test sort::raw::tests::test_extract_template_key_unmapped_with_cb ... ok
[INFO] [stdout] test sort::raw::tests::test_create_output_header_queryname ... ok
[INFO] [stdout] test sort::pipeline::tests::test_merge_entry_partial_eq_different ... ok
[INFO] [stdout] test sort::raw::tests::test_extract_template_key_different_cb_values_differ ... ok
[INFO] [stdout] test sort::raw::tests::test_find_rg_tag::case_1_present ... ok
[INFO] [stdout] test sort::raw::tests::test_find_rg_tag_after_other_tags ... ok
[INFO] [stdout] test sort::pipeline::tests::test_merge_entry_in_binary_heap ... ok
[INFO] [stdout] test sort::radix::tests::test_heap_operations ... ok
[INFO] [stdout] test sort::raw::tests::test_extract_template_key_cell_tag_none_has_zero_hash ... ok
[INFO] [stdout] test sort::raw::tests::test_extract_template_key_cb_present_has_nonzero_hash ... ok
[INFO] [stdout] test sort::raw::tests::test_library_lookup_empty_header ... ok
[INFO] [stdout] test sort::raw::tests::test_library_lookup_multiple_libraries ... ok
[INFO] [stdout] test sort::raw::tests::test_library_lookup_single_rg ... ok
[INFO] [stdout] test sort::raw::tests::test_library_lookup_unknown_rg_returns_zero ... ok
[INFO] [stdout] test sort::pipeline::tests::test_prefetch_buffer_size ... ok
[INFO] [stdout] test sort::raw::tests::test_raw_sorter_cell_tag_builder ... ok
[INFO] [stdout] test sort::raw::tests::test_raw_sorter_cell_tag_default_is_none ... ok
[INFO] [stdout] test sort::raw::tests::test_raw_sorter_defaults ... ok
[INFO] [stdout] test sort::raw::tests::test_raw_sorter_max_temp_files ... ok
[INFO] [stdout] test sort::raw::tests::test_raw_sorter_memory_limit ... ok
[INFO] [stdout] test sort::raw::tests::test_raw_sorter_temp_compression ... ok
[INFO] [stdout] test sort::raw::tests::test_raw_sorter_builder_chain ... ok
[INFO] [stdout] test sort::raw::tests::test_sort_sub_arrays_in_memory_only::case_3_template_coordinate ... ok
[INFO] [stdout] test sort::raw::tests::test_sort_sub_arrays_in_memory_only::case_2_queryname ... ok
[INFO] [stdout] test sort::raw::tests::test_merge_bams_single_input ... ok
[INFO] [stdout] test sort::raw::tests::test_merge_bams_preserves_all_records ... ok
[INFO] [stdout] test sort::raw::tests::test_merge_bams_template_coordinate_sort ... ok
[INFO] [stdout] test sort::raw_bam_reader::tests::test_batched_reader ... ok
[INFO] [stdout] test sort::raw_bam_reader::tests::test_batched_reader_eof ... ok
[INFO] [stdout] test sort::raw_bam_reader::tests::test_blocks_per_batch ... ok
[INFO] [stdout] test sort::raw_bam_reader::tests::test_from_buf_reader ... ok
[INFO] [stdout] test sort::raw_bam_reader::tests::test_iterator_adapter ... ok
[INFO] [stdout] test sort::raw_bam_reader::tests::test_new_empty_input ... ok
[INFO] [stdout] test sort::raw_bam_reader::tests::test_new_invalid_magic ... ok
[INFO] [stdout] test sort::raw_bam_reader::tests::test_new_valid_bam ... ok
[INFO] [stdout] test sort::raw_bam_reader::tests::test_next_record_without_skip_header_errors ... ok
[INFO] [stdout] test sort::raw_bam_reader::tests::test_read_multiple_records ... ok
[INFO] [stdout] test sort::raw_bam_reader::tests::test_read_single_record ... ok
[INFO] [stdout] test sort::raw_bam_reader::tests::test_skip_header_returns_bytes ... ok
[INFO] [stdout] test sort::raw_bam_reader::tests::test_skip_header_twice_errors ... ok
[INFO] [stdout] test sort::read_ahead::tests::test_default_batch_config ... ok
[INFO] [stdout] test sort::read_ahead::tests::test_prefetch_total_records ... ok
[INFO] [stdout] test sort::read_ahead::tests::test_raw_read_ahead_empty ... ok
[INFO] [stdout] test sort::read_ahead::tests::test_raw_read_ahead_multiple ... ok
[INFO] [stdout] test sort::raw::tests::test_merge_bams_queryname_sort ... ok
[INFO] [stdout] test sort::read_ahead::tests::test_read_ahead_reader_empty_bam ... ok
[INFO] [stdout] test sort::read_ahead::tests::test_read_ahead_reader_iterator ... ok
[INFO] [stdout] test sort::read_ahead::tests::test_read_ahead_reader_multiple_records ... ok
[INFO] [stdout] test sort::read_ahead::tests::test_read_ahead_reader_single_record ... ok
[INFO] [stdout] test sort::read_ahead::tests::test_read_ahead_reader_with_buffer_size ... ok
[INFO] [stdout] test sort::tests::test_create_temp_dir_default ... ok
[INFO] [stdout] test sort::tests::test_create_temp_dir_with_base ... ok
[INFO] [stdout] test sort::raw::tests::test_sort_with_consolidation_preserves_all_records::case_4_template_coordinate ... ok
[INFO] [stdout] test tag_reversal::tests::test_reverse_buf_value_all_array_types::case_1 ... ok
[INFO] [stdout] test tag_reversal::tests::test_reverse_buf_value_all_array_types::case_2 ... ok
[INFO] [stdout] test tag_reversal::tests::test_reverse_buf_value_all_array_types::case_3 ... ok
[INFO] [stdout] test tag_reversal::tests::test_reverse_buf_value_all_array_types::case_4 ... ok
[INFO] [stdout] test tag_reversal::tests::test_reverse_buf_value_all_array_types::case_5 ... ok
[INFO] [stdout] test sort::tests::test_sort_stats_default ... ok
[INFO] [stdout] test tag_reversal::tests::test_reverse_buf_value_all_array_types::case_6 ... ok
[INFO] [stdout] test sort::raw::tests::test_sort_with_consolidation_preserves_all_records::case_3_queryname ... ok
[INFO] [stdout] test sort::raw::tests::test_sort_with_consolidation_preserves_all_records::case_2_coordinate_with_index ... ok
[INFO] [stdout] test tag_reversal::tests::test_reverse_buf_value_non_array ... ok
[INFO] [stdout] test tag_reversal::tests::test_reverse_buf_value_all_array_types::case_7 ... ok
[INFO] [stdout] test tag_reversal::tests::test_reverse_complement_tag ... ok
[INFO] [stdout] test tag_reversal::tests::test_reverse_per_base_tags_negative_strand ... ok
[INFO] [stdout] test tag_reversal::tests::test_reverse_per_base_tags_positive_strand ... ok
[INFO] [stdout] test tag_reversal::tests::test_reverse_per_base_tags_raw_short_record ... ok
[INFO] [stdout] test tag_reversal::tests::test_reverse_per_base_tags_raw_positive_strand ... ok
[INFO] [stdout] test tag_reversal::tests::test_reverse_string_tag_aq ... ok
[INFO] [stdout] test template::tests::test_builder_build_empty_error ... ok
[INFO] [stdout] test template::tests::test_builder_build_success ... ok
[INFO] [stdout] test template::tests::test_builder_empty ... ok
[INFO] [stdout] test template::tests::test_builder_error_on_multiple_r2 ... ok
[INFO] [stdout] test tag_reversal::tests::test_reverse_per_base_tags_raw_negative_strand ... ok
[INFO] [stdout] test template::tests::test_builder_error_on_name_mismatch ... ok
[INFO] [stdout] test template::tests::test_builder_error_on_multiple_r1 ... ok
[INFO] [stdout] test sort::raw::tests::test_merge_bams_coordinate_sort ... ok
[INFO] [stdout] test template::tests::test_builder_push_paired_end ... ok
[INFO] [stdout] test template::tests::test_builder_push_secondary ... ok
[INFO] [stdout] test tag_reversal::tests::test_reverse_per_base_tags_raw_string_tag_aq ... ok
[INFO] [stdout] test template::tests::test_cigar_to_string ... ok
[INFO] [stdout] test template::tests::test_builder_push_supplementary ... ok
[INFO] [stdout] test sort::raw::tests::test_sort_sub_arrays_match_single_thread::case_2_queryname ... ok
[INFO] [stdout] test template::tests::test_compute_insert_size_different_references ... ok
[INFO] [stdout] test template::tests::test_builder_push_r1_only ... ok
[INFO] [stdout] test template::tests::test_compute_insert_size_both_unmapped ... ok
[INFO] [stdout] test template::tests::test_cigar_to_string_with_ops ... ok
[INFO] [stdout] test template::tests::test_compute_insert_size_forward_tandem ... ok
[INFO] [stdout] test template::tests::test_compute_insert_size_normal_outie ... ok
[INFO] [stdout] test template::tests::test_compute_insert_size_overlapping_innie ... ok
[INFO] [stdout] test template::tests::test_compute_insert_size_r1_unmapped ... ok
[INFO] [stdout] test template::tests::test_compute_insert_size_reverse_tandem ... ok
[INFO] [stdout] test template::tests::test_compute_insert_size_negative ... ok
[INFO] [stdout] test template::tests::test_compute_insert_size_with_indels ... ok
[INFO] [stdout] test template::tests::test_compute_insert_size_normal_innie ... ok
[INFO] [stdout] test template::tests::test_compute_insert_size_r2_unmapped ... ok
[INFO] [stdout] test template::tests::test_compute_insert_size_completely_overlapping_innie ... ok
[INFO] [stdout] test template::tests::test_extract_int_value_int32 ... ok
[INFO] [stdout] test template::tests::test_extract_int_value_int8 ... ok
[INFO] [stdout] test template::tests::test_extract_int_value_int16 ... ok
[INFO] [stdout] test template::tests::test_extract_int_value_uint16 ... ok
[INFO] [stdout] test template::tests::test_extract_int_value_string_returns_none ... ok
[INFO] [stdout] test template::tests::test_extract_int_value_uint32 ... ok
[INFO] [stdout] test template::tests::test_extract_int_value_uint8 ... ok
[INFO] [stdout] test template::tests::test_fix_mate_info_both_unmapped ... ok
[INFO] [stdout] test template::tests::test_fix_mate_info_clears_incorrect_mate_reverse_flag ... ok
[INFO] [stdout] test template::tests::test_fix_mate_info_multiple_supplementals ... ok
[INFO] [stdout] test template::tests::test_fix_mate_info_one_unmapped ... ok
[INFO] [stdout] test template::tests::test_fix_mate_info_sets_full_mate_info_on_r1_supplementals ... ok
[INFO] [stdout] test template::tests::test_fix_mate_info_sets_mate_cigar ... ok
[INFO] [stdout] test template::tests::test_fix_mate_info_no_ms_tag_without_as ... ok
[INFO] [stdout] test sort::raw::tests::test_sort_many_chunks_with_semaphore::case_1_coordinate ... ok
[INFO] [stdout] test template::tests::test_fix_mate_info_sets_ms_tag_with_int16_as ... ok
[INFO] [stdout] test template::tests::test_fix_mate_info_sets_ms_tag_on_supplementals ... ok
[INFO] [stdout] test template::tests::test_fix_mate_info_sets_ms_tag_with_int32_as ... ok
[INFO] [stdout] test template::tests::test_fix_mate_info_sets_ms_tag_with_int8_as ... ok
[INFO] [stdout] test template::tests::test_fix_mate_info_sets_ms_tag_with_uint8_as ... ok
[INFO] [stdout] test template::tests::test_fix_mate_info_sets_tlen_normal_innie ... ok
[INFO] [stdout] test template::tests::test_fix_mate_info_sets_full_mate_info_on_r2_supplementals ... ok
[INFO] [stdout] test template::tests::test_fix_mate_info_sets_tlen_on_multiple_supplementals ... ok
[INFO] [stdout] test template::tests::test_fix_mate_info_sets_tlen_on_r1_supplementals ... ok
[INFO] [stdout] test template::tests::test_fix_mate_info_sets_tlen_on_r2_supplementals ... ok
[INFO] [stdout] test sort::inline_buffer::tests::proptest_msd::msd_sort_matches_reference_random_keys ... ok
[INFO] [stdout] test sort::raw::tests::test_sort_sub_arrays_match_single_thread::case_1_coordinate ... ok
[INFO] [stdout] test template::tests::test_from_raw_records_all_raw_records_mut ... ok
[INFO] [stdout] test template::tests::test_from_raw_records_creates_raw_mode_template ... ok
[INFO] [stdout] test template::tests::test_from_raw_records_empty ... ok
[INFO] [stdout] test template::tests::test_fix_mate_info_tlen_recalculated ... ok
[INFO] [stdout] test template::tests::test_fix_mate_info_supplemental_with_unmapped_mate ... ok
[INFO] [stdout] test template::tests::test_extract_int_value_uint32_overflow ... ok
[INFO] [stdout] test template::tests::test_from_raw_records_fast_path_fallthrough_both_r1 ... ok
[INFO] [stdout] test template::tests::test_from_raw_records_fast_path_normal_order ... ok
[INFO] [stdout] test template::tests::test_from_raw_records_fast_path_swap ... ok
[INFO] [stdout] test template::tests::test_from_raw_records_truncated_header ... ok
[INFO] [stdout] test template::tests::test_from_raw_records_truncated_read_name ... ok
[INFO] [stdout] test template::tests::test_from_raw_records_fast_path_with_secondary ... ok
[INFO] [stdout] test template::tests::test_from_raw_records_name_mismatch ... ok
[INFO] [stdout] test template::tests::test_from_raw_records_into_raw_records ... ok
[INFO] [stdout] test template::tests::test_from_raw_records_single_unpaired ... ok
[INFO] [stdout] test template::tests::test_from_raw_records_valid_l_read_name ... ok
[INFO] [stdout] test template::tests::test_from_raw_records_with_supplementary ... ok
[INFO] [stdout] test template::tests::test_pair_orientation_fr_from_reverse_read ... ok
[INFO] [stdout] test template::tests::test_pair_orientation_r1_unmapped ... ok
[INFO] [stdout] test template::tests::test_pair_orientation_rf_pair ... ok
[INFO] [stdout] test template::tests::test_pair_orientation_r2_unmapped ... ok
[INFO] [stdout] test template::tests::test_pair_orientation_tandem_both_forward ... ok
[INFO] [stdout] test template::tests::test_pair_orientation_tandem_both_reverse ... ok
[INFO] [stdout] test template::tests::test_pair_orientation_no_r2 ... ok
[INFO] [stdout] test template::tests::test_r1_accessor_returns_none_in_raw_mode ... ok
[INFO] [stdout] test template::tests::test_record_ordering_within_groups_is_reversed ... ok
[INFO] [stdout] test template::tests::test_records_in_range_invalid_start_gt_end ... ok
[INFO] [stdout] test template::tests::test_pair_orientation_different_chromosomes ... ok
[INFO] [stdout] test template::tests::test_pair_orientation_fr_pair ... ok
[INFO] [stdout] test template::tests::test_template_all_r2s ... ok
[INFO] [stdout] test template::tests::test_r2_accessor_returns_none_in_raw_mode ... ok
[INFO] [stdout] test template::tests::test_pair_orientation_no_r1 ... ok
[INFO] [stdout] test template::tests::test_template_from_records ... ok
[INFO] [stdout] test template::tests::test_template_into_primary_reads ... ok
[INFO] [stdout] test template::tests::test_template_all_r1s ... ok
[INFO] [stdout] test template::tests::test_template_all_reads ... ok
[INFO] [stdout] test template::tests::test_template_builder_reuse ... ok
[INFO] [stdout] test template::tests::test_template_into_primary_reads_r1_only ... ok
[INFO] [stdout] test template::tests::test_template_primary_reads ... ok
[INFO] [stdout] test template::tests::test_template_r1_secondaries ... ok
[INFO] [stdout] test template::tests::test_template_r2_secondaries ... ok
[INFO] [stdout] test template::tests::test_template_r1_supplementals ... ok
[INFO] [stdout] test template::tests::test_template_r2_supplementals ... ok
[INFO] [stdout] test template::tests::test_write_with_offset_none ... ok
[INFO] [stdout] test template::tests::test_write_with_offset_paired_a ... ok
[INFO] [stdout] test template::tests::test_template_new ... ok
[INFO] [stdout] test template::tests::test_write_with_offset_reuses_buffer ... ok
[INFO] [stdout] test template::tests::test_write_with_offset_single ... ok
[INFO] [stdout] test template::tests::test_template_supplementals_and_secondaries ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_discover_edges_parallel_chain ... ok
[INFO] [stdout] test template::tests::test_template_record_ordering ... ok
[INFO] [stdout] test template::tests::test_extract_int_value_negative ... ok
[INFO] [stdout] test template::tests::test_write_with_offset_matches_to_string ... ok
[INFO] [stdout] test template::tests::test_write_with_offset_paired_b ... ok
[INFO] [stdout] test template::tests::test_fix_mate_info_no_mate_primary ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_generate_neighbors_k2 ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_discover_edges_parallel_k1 ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_generate_neighbors ... ok
[INFO] [stdout] test sort::raw::tests::test_sort_sub_arrays_in_memory_only::case_1_coordinate ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_discover_edges_parallel_k2 ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_parallel_adjacency_basic ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_parallel_adjacency_count_constraint ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_edit_equivalence_with_sequential ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_parallel_edit_empty ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_parallel_adjacency_empty ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_parallel_adjacency_paired_umis_with_dash ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_parallel_adjacency_single ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_parallel_edit_basic ... ok
[INFO] [stdout] test sort::raw::tests::test_merge_bams_many_inputs ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_parallel_adjacency_vs_parallel_adjacency_deterministic ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_parallel_adjacency_cascade ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_parallel_edit_case_insensitive ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_parallel_edit_paired_umis_with_dash ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_parallel_edit_identical_umis ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_parallel_adjacency_deterministic_tiebreak ... ok
[INFO] [stdout] test sort::raw::tests::test_sort_many_chunks_with_semaphore::case_3_template_coordinate ... ok
[INFO] [stdout] test sort::raw::tests::test_sort_many_chunks_with_semaphore::case_2_queryname ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_parallel_edit_k2 ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_parallel_edit_single ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_parallel_edit_transitive ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_parallel_edit_invalid_umis ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_parallel_paired_canonicalization ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_parallel_paired_canonicalization_mixed_case ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_union_find_basic ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_union_find_large ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_parallel_identity_empty ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_parallel_paired_with_errors ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_parallel_identity_single ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_parallel_identity_deterministic ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_parallel_identity_basic ... ok
[INFO] [stdout] test unified_pipeline::bam::tests::test_can_decode_proceed_over_limit_but_needed_serial ... ok
[INFO] [stdout] test unified_pipeline::bam::tests::test_can_decode_proceed_under_limit ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_union_find_parallel ... ok
[INFO] [stdout] test unified_pipeline::bam::tests::test_can_decode_proceed_no_limit ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_parallel_edit_vs_parallel_edit_deterministic ... ok
[INFO] [stdout] test unified_pipeline::bam::tests::test_can_decompress_proceed_no_limit ... ok
[INFO] [stdout] test unified_pipeline::bam::tests::test_validation_detects_counter_mismatch_decompressed ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_parallel_identity_many_duplicates ... ok
[INFO] [stdout] test unified_pipeline::bam::tests::test_validation_detects_counter_mismatch_grouped ... ok
[INFO] [stdout] test unified_pipeline::bam::tests::test_can_decompress_proceed_over_limit_but_needed_serial ... ok
[INFO] [stdout] test unified_pipeline::bam::tests::test_pipeline_functions_secondary_serialize ... ok
[INFO] [stdout] test unified_pipeline::bam::tests::test_validation_detects_non_empty_q1 ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_parallel_identity_case_insensitive ... ok
[INFO] [stdout] test unified_pipeline::bam::tests::test_validation_detects_counter_mismatch_boundary_processed ... ok
[INFO] [stdout] test unified_pipeline::bam::tests::test_validation_detects_non_empty_q2 ... ok
[INFO] [stdout] test unified_pipeline::bam::tests::test_is_memory_high_threshold ... ok
[INFO] [stdout] test unified_pipeline::bam::tests::test_can_decompress_proceed_over_limit ... ok
[INFO] [stdout] test unified_pipeline::bam::tests::test_validation_detects_non_empty_reorder_buffer ... ok
[INFO] [stdout] test unified_pipeline::bam::tests::test_validation_detects_non_empty_output_queue ... ok
[INFO] [stdout] test sort::raw::tests::test_sort_with_consolidation_preserves_all_records::case_1_coordinate ... ok
[INFO] [stdout] test umi::parallel_assigner::tests::test_parallel_paired_basic ... ok
[INFO] [stdout] test unified_pipeline::bam::tests::test_can_decompress_proceed_under_limit ... ok
[INFO] [stdout] test unified_pipeline::bam::tests::test_is_memory_drained_threshold ... ok
[INFO] [stdout] test unified_pipeline::bam::tests::test_validation_detects_non_empty_q3_reorder ... ok
[INFO] [stdout] test unified_pipeline::bam::tests::test_validation_detects_non_empty_write_reorder ... ok
[INFO] [stdout] test unified_pipeline::bam::tests::test_validation_error_display ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_bgzf_batch_config_new ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_compressed_block_batch_clear ... ok
[INFO] [stdout] test unified_pipeline::bam::tests::test_validation_passes_when_complete ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_bgzf_batch_config_default ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_extract_panic_message_str ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_extract_panic_message_string ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_group_key_default ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_compressed_block_batch_new ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_group_key_eq ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_group_key_hash ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_compressed_block_batch_memory_with_secondary ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_group_key_ord_by_position ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_decoded_record_record_accessor ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_decompressed_batch_new_empty ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_group_key_paired_same_position ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_group_key_ord_tiebreak_name_hash ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_extract_panic_message_other ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_group_key_paired_swap ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_memory_estimate_serialized_batch ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_group_key_single ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_memory_estimate_vec_record_buf ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_memory_tracker_default_is_unlimited ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_group_key_position_key ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_memory_estimate_decompressed_batch ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_memory_estimate_unit ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_memory_tracker_try_add_single_exceeds ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_memory_tracker_try_add_under_limit ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_memory_tracker_drain_threshold ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_output_queues_are_queues_empty ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_group_key_paired ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_output_queues_draining ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_output_queues_new ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_output_queues_queue_depths_empty ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_output_queues_set_take_error ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_pipeline_config_auto_tuned_32_threads ... ok
[INFO] [stdout] test sort::raw::tests::test_sort_sub_arrays_match_single_thread::case_3_template_coordinate ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_pipeline_config_auto_tuned_8_threads ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_pipeline_config_auto_tuned_1_thread ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_memory_tracker_try_add_at_limit ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_pipeline_config_builder_chain ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_memory_tracker_is_at_limit ... ok
[INFO] [stdout] test sort::read_ahead::tests::test_read_ahead_reader_drop_while_reading ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_memory_tracker_new ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_pipeline_config_with_batch_size_min_1 ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_pipeline_config_new_defaults ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_pipeline_config_with_compression_level ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_memory_tracker_peak_tracking ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_memory_tracker_remove_saturating ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_memory_tracker_unlimited ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_pipeline_validation_error_display_empty ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_pipeline_config_with_queue_memory_limit ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_pipeline_validation_error_display_full ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_reorder_buffer_state_effective_limit ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_raw_block_batch_new_empty ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_reorder_buffer_state_can_proceed_next_seq ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_reorder_buffer_state_is_memory_drained ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_raw_block_batch_with_capacity ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_reorder_buffer_state_can_proceed_over_limit ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_reorder_buffer_state_add_sub_heap_bytes ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_pipeline_step_all ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_pipeline_step_from_index ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_pipeline_step_is_exclusive ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_reorder_buffer_state_is_memory_high ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_pipeline_step_short_name ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_serialized_batch_clear ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_serialized_batch_memory_estimate_with_secondary ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_serialized_batch_memory_estimate_without_secondary ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_stats_record_idle_for_thread ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_stats_record_queue_empty ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_step_result_is_success ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_stats_record_step_for_thread ... ok
[INFO] [stdout] test unified_pipeline::deadlock::tests::test_config_default ... ok
[INFO] [stdout] test unified_pipeline::deadlock::tests::test_config_disabled ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_step_result_variants ... ok
[INFO] [stdout] test unified_pipeline::deadlock::tests::test_disabled_state_skips_tracking ... ok
[INFO] [stdout] test unified_pipeline::deadlock::tests::test_detection_disabled_returns_none ... ok
[INFO] [stdout] test unified_pipeline::deadlock::tests::test_get_memory_limit ... ok
[INFO] [stdout] test unified_pipeline::deadlock::tests::test_deadlock_detected_after_timeout ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_reorder_buffer_state_new ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_worker_core_state_increase_backoff ... ok
[INFO] [stdout] test unified_pipeline::deadlock::tests::test_no_restoration_before_30s ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_stats_record_step_timing ... ok
[INFO] [stdout] test unified_pipeline::deadlock::tests::test_recovery_caps_at_8x ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_worker_core_state_initial_values ... ok
[INFO] [stdout] test unified_pipeline::deadlock::tests::test_recovery_disabled_only_logs ... ok
[INFO] [stdout] test unified_pipeline::deadlock::tests::test_restoration_after_30s_progress ... ok
[INFO] [stdout] test unified_pipeline::deadlock::tests::test_restoration_from_unbounded ... ok
[INFO] [stdout] test unified_pipeline::base::tests::test_worker_core_state_reset_backoff ... ok
[INFO] [stdout] test unified_pipeline::deadlock::tests::test_stable_limit_never_decreases ... ok
[INFO] [stdout] test unified_pipeline::deadlock::tests::test_restoration_respects_stable_limit ... ok
[INFO] [stdout] test unified_pipeline::deadlock::tests::test_no_detection_before_timeout ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_active_steps::case_2_bgzf ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_active_steps::case_1_gzip ... ok
[INFO] [stdout] test unified_pipeline::deadlock::tests::test_recovery_doubles_limit ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_align_stream_records_unequal ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_align_stream_records_equal ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_fastq_parsed_batch_memory_estimate ... ok
[INFO] [stdout] test unified_pipeline::deadlock::tests::test_recovery_updates_stable_limit ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_bam_pipeline_config ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_bgzf_batch_config ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_find_boundaries_aligns_unequal_record_counts ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_fastq_decompressed_batch_memory_estimate ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_find_boundaries_leftover_persists_to_next_batch ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_find_boundaries_processes_leftover_without_new_chunk ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_find_boundaries_empty_batch_with_leftover ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_find_boundaries_equal_counts_no_alignment_needed ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_compressed_block_batch ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_config_defaults ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_create_templates_from_correctly_ordered_streams ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_create_templates_from_reversed_streams ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_decompressed_batch ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_end_to_end_reversed_stream_order_at_eof ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_fastq_boundary_batch_memory_estimate ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_find_boundaries_single_stream_no_alignment ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_pair_state_basic ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_pair_state_uneven_streams ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_pair_state_count_based_completion ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_parallel_parse_boundary_finding_integration ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_parallel_parse_records_spanning_chunks ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_parse_records_preserves_stream_idx ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_pipeline_step_is_exclusive ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_raw_block_batch ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_pipeline_step_all ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_read_n_fastq_records_at_eof ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_read_n_fastq_records_basic ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_read_n_fastq_records_empty_input ... ok
[INFO] [stdout] test unified_pipeline::rebalancer::tests::test_parse_memory_limit ... ok
[INFO] [stdout] test unified_pipeline::rebalancer::tests::test_parse_memory_limit_minimum ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_pair_state_insert_and_pop ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_pipeline_config ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_serialized_batch ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_read_raw_blocks_from_memory ... ok
[INFO] [stdout] test unified_pipeline::queue::tests::test_ordered_queue_backpressure_when_has_next ... ok
[INFO] [stdout] test unified_pipeline::queue::tests::test_ordered_queue_basic ... ok
[INFO] [stdout] test unified_pipeline::queue::tests::test_ordered_queue_backpressure_memory_bound ... ok
[INFO] [stdout] test unified_pipeline::queue::tests::test_ordered_queue_must_accept_when_waiting ... ok
[INFO] [stdout] test unified_pipeline::rebalancer::tests::test_initial_allocation ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_parallel_parse_thread_safety ... ok
[INFO] [stdout] test unified_pipeline::rebalancer::tests::test_rebalancer_basic ... ok
[INFO] [stdout] test unified_pipeline::rebalancer::tests::test_rebalancer_gradual_change ... ok
[INFO] [stdout] test unified_pipeline::scheduler::backpressure_proportional::tests::test_initial_balanced_weights ... ok
[INFO] [stdout] test unified_pipeline::scheduler::backpressure_proportional::tests::test_output_high_increases_downstream ... ok
[INFO] [stdout] test unified_pipeline::scheduler::balanced_chase::tests::test_bottleneck_always_in_top_priorities ... ok
[INFO] [stdout] test unified_pipeline::scheduler::balanced_chase_drain::tests::test_compress_preferred_at_8_threads ... ok
[INFO] [stdout] test unified_pipeline::scheduler::balanced_chase::tests::test_middle_thread_no_exclusive_role ... ok
[INFO] [stdout] test unified_pipeline::scheduler::balanced_chase::tests::test_pivot_to_compress_after_exclusive ... ok
[INFO] [stdout] test unified_pipeline::scheduler::balanced_chase_drain::tests::test_compress_preferred_below_8_threads::case_2 ... ok
[INFO] [stdout] test unified_pipeline::scheduler::balanced_chase_drain::tests::test_compress_preferred_below_8_threads::case_3 ... ok
[INFO] [stdout] test unified_pipeline::scheduler::balanced_chase_drain::tests::test_compress_preferred_below_8_threads::case_1 ... ok
[INFO] [stdout] test unified_pipeline::scheduler::backpressure_proportional::tests::test_input_low_increases_upstream ... ok
[INFO] [stdout] test unified_pipeline::scheduler::balanced_chase::tests::test_writer_starts_on_compress ... ok
[INFO] [stdout] test unified_pipeline::scheduler::balanced_chase_drain::tests::test_compress_preferred_below_8_threads::case_4 ... ok
[INFO] [stdout] test unified_pipeline::deadlock::tests::test_per_queue_timestamps_independent ... ok
[INFO] [stdout] test unified_pipeline::deadlock::tests::test_progress_timestamp_updates_on_pop ... ok
[INFO] [stdout] test unified_pipeline::deadlock::tests::test_progress_timestamp_updates_on_push ... ok
[INFO] [stdout] test unified_pipeline::scheduler::balanced_chase::tests::test_reader_starts_on_compress ... ok
[INFO] [stdout] test unified_pipeline::scheduler::balanced_chase::tests::test_exclusive_role_first_in_priorities ... ok
[INFO] [stdout] test unified_pipeline::scheduler::balanced_chase_drain::tests::test_compress_preferred_drain_mode ... ok
[INFO] [stdout] test unified_pipeline::scheduler::balanced_chase_drain::tests::test_compress_preferred_priorities ... ok
[INFO] [stdout] test unified_pipeline::scheduler::balanced_chase_drain::tests::test_drain_mode_exits_when_backpressure_clears ... ok
[INFO] [stdout] test unified_pipeline::scheduler::balanced_chase_drain::tests::test_drain_mode_prioritizes_compress ... ok
[INFO] [stdout] test unified_pipeline::scheduler::balanced_chase_drain::tests::test_memory_high_prioritizes_process ... ok
[INFO] [stdout] test unified_pipeline::scheduler::balanced_chase_drain::tests::test_compress_preferred_below_8_threads::case_5 ... ok
[INFO] [stdout] test unified_pipeline::scheduler::balanced_chase_drain::tests::test_compress_preferred_below_8_threads::case_6 ... ok
[INFO] [stdout] test unified_pipeline::scheduler::balanced_chase_drain::tests::test_normal_mode_serializes_first ... ok
[INFO] [stdout] test unified_pipeline::scheduler::balanced_chase_drain::tests::test_serialize_failure_triggers_drain_mode ... ok
[INFO] [stdout] test unified_pipeline::scheduler::balanced_chase_drain::tests::test_reader_starts_on_compress ... ok
[INFO] [stdout] test unified_pipeline::scheduler::chase_bottleneck::tests::test_initial_step_middle ... ok
[INFO] [stdout] test unified_pipeline::scheduler::chase_bottleneck::tests::test_initial_step_writer ... ok
[INFO] [stdout] test unified_pipeline::scheduler::chase_bottleneck::tests::test_move_on_failure_forward ... ok
[INFO] [stdout] test unified_pipeline::scheduler::chase_bottleneck::tests::test_sticky_on_success ... ok
[INFO] [stdout] test unified_pipeline::scheduler::epsilon_greedy::tests::test_default_epsilon ... ok
[INFO] [stdout] test unified_pipeline::scheduler::epsilon_greedy::tests::test_unexplored_neutral_prior ... ok
[INFO] [stdout] test unified_pipeline::scheduler::epsilon_greedy::tests::test_success_rate_calculation ... ok
[INFO] [stdout] test unified_pipeline::scheduler::epsilon_greedy::tests::test_priorities_returns_all_steps ... ok
[INFO] [stdout] test unified_pipeline::scheduler::fixed_priority::tests::test_backpressure_fill_not_when_read_done ... ok
[INFO] [stdout] test unified_pipeline::scheduler::fixed_priority::tests::test_boundary_specialist_late ... ok
[INFO] [stdout] test unified_pipeline::scheduler::fixed_priority::tests::test_boundary_specialist_early ... ok
[INFO] [stdout] test unified_pipeline::scheduler::chase_bottleneck::tests::test_move_on_failure_backward ... ok
[INFO] [stdout] test unified_pipeline::scheduler::fixed_priority::tests::test_two_threads ... ok
[INFO] [stdout] test unified_pipeline::scheduler::chase_bottleneck::tests::test_backpressure_input_low_sets_backward ... ok
[INFO] [stdout] test unified_pipeline::scheduler::fixed_priority::tests::test_reader_priorities ... ok
[INFO] [stdout] test unified_pipeline::scheduler::fixed_priority::tests::test_backpressure_fill ... ok
[INFO] [stdout] test unified_pipeline::scheduler::chase_bottleneck::tests::test_backpressure_output_high_sets_forward ... ok
[INFO] [stdout] test unified_pipeline::scheduler::fixed_priority::tests::test_backpressure_drain ... ok
[INFO] [stdout] test unified_pipeline::scheduler::chase_bottleneck::tests::test_get_priorities_returns_all_steps ... ok
[INFO] [stdout] test unified_pipeline::scheduler::fixed_priority::tests::test_writer_priorities ... ok
[INFO] [stdout] test unified_pipeline::scheduler::chase_bottleneck::tests::test_initial_step_reader ... ok
[INFO] [stdout] test unified_pipeline::scheduler::hybrid_adaptive::tests::test_consecutive_counter_reset ... ok
[INFO] [stdout] test unified_pipeline::scheduler::hybrid_adaptive::tests::test_starts_in_fixed_mode ... ok
[INFO] [stdout] test unified_pipeline::scheduler::hybrid_adaptive::tests::test_return_to_fixed_after_successes ... ok
[INFO] [stdout] test unified_pipeline::scheduler::hybrid_adaptive::tests::test_switch_to_chase_after_failures ... ok
[INFO] [stdout] test unified_pipeline::scheduler::learned_affinity::tests::test_affinity_learning ... ok
[INFO] [stdout] test unified_pipeline::scheduler::learned_affinity::tests::test_minimum_exploration_rate ... ok
[INFO] [stdout] test unified_pipeline::scheduler::learned_affinity::tests::test_initial_exploration_rate ... ok
[INFO] [stdout] test unified_pipeline::scheduler::learned_affinity::tests::test_exploration_decay ... ok
[INFO] [stdout] test unified_pipeline::scheduler::optimized_chase::tests::test_bottleneck_steps_in_priorities ... ok
[INFO] [stdout] test unified_pipeline::scheduler::optimized_chase::tests::test_exclusive_backoff_after_contention ... ok
[INFO] [stdout] test unified_pipeline::scheduler::optimized_chase::tests::test_middle_threads_start_on_bottleneck ... ok
[INFO] [stdout] test unified_pipeline::scheduler::optimized_chase::tests::test_priorities_returns_all_steps ... ok
[INFO] [stdout] test unified_pipeline::scheduler::optimized_chase::tests::test_bottleneck_stickiness ... ok
[INFO] [stdout] test unified_pipeline::scheduler::optimized_chase::tests::test_specialist_no_backoff ... ok
[INFO] [stdout] test unified_pipeline::scheduler::optimized_chase::tests::test_thread_6_is_group_specialist ... ok
[INFO] [stdout] test unified_pipeline::scheduler::optimized_chase::tests::test_thread_0_is_reader_specialist ... ok
[INFO] [stdout] test unified_pipeline::scheduler::optimized_chase::tests::test_thread_7_is_writer_specialist ... ok
[INFO] [stdout] test unified_pipeline::scheduler::optimized_chase::tests::test_thread_1_is_boundary_specialist ... ok
[INFO] [stdout] test unified_pipeline::scheduler::optimized_chase::tests::test_wrap_to_parallel_steps ... ok
[INFO] [stdout] test unified_pipeline::scheduler::sticky_work_stealing::tests::test_reader_home_step ... ok
[INFO] [stdout] test unified_pipeline::scheduler::sticky_work_stealing::tests::test_return_home_after_threshold ... ok
[INFO] [stdout] test unified_pipeline::scheduler::sticky_work_stealing::tests::test_writer_home_step ... ok
[INFO] [stdout] test unified_pipeline::scheduler::tests::test_create_scheduler::case_01_fixed_priority ... ok
[INFO] [stdout] test unified_pipeline::scheduler::tests::test_create_scheduler::case_02_chase_bottleneck ... ok
[INFO] [stdout] test unified_pipeline::scheduler::tests::test_create_scheduler::case_03_thompson_sampling ... ok
[INFO] [stdout] test unified_pipeline::scheduler::tests::test_create_scheduler::case_05_epsilon_greedy ... ok
[INFO] [stdout] test unified_pipeline::scheduler::tests::test_create_scheduler::case_04_ucb ... ok
[INFO] [stdout] test unified_pipeline::scheduler::tests::test_create_scheduler::case_07_hybrid_adaptive ... ok
[INFO] [stdout] test unified_pipeline::scheduler::tests::test_create_scheduler::case_06_thompson_with_priors ... ok
[INFO] [stdout] test unified_pipeline::scheduler::tests::test_create_scheduler::case_13_balanced_chase ... ok
[INFO] [stdout] test unified_pipeline::scheduler::tests::test_create_scheduler::case_14_balanced_chase_drain ... ok
[INFO] [stdout] test unified_pipeline::scheduler::tests::test_create_scheduler::case_08_backpressure_proportional ... ok
[INFO] [stdout] test unified_pipeline::scheduler::tests::test_create_scheduler::case_09_two_phase ... ok
[INFO] [stdout] test unified_pipeline::scheduler::tests::test_four_thread_edge_case ... ok
[INFO] [stdout] test unified_pipeline::scheduler::sticky_work_stealing::tests::test_sticky_on_success ... ok
[INFO] [stdout] test unified_pipeline::scheduler::tests::test_scheduler_strategy_default ... ok
[INFO] [stdout] test unified_pipeline::scheduler::tests::test_exclusive_step_ownership_eight_threads ... ok
[INFO] [stdout] test unified_pipeline::scheduler::tests::test_exclusive_step_ownership_small_thread_counts ... ok
[INFO] [stdout] test unified_pipeline::scheduler::tests::test_create_scheduler::case_10_sticky_work_stealing ... ok
[INFO] [stdout] test unified_pipeline::scheduler::tests::test_create_scheduler::case_11_learned_affinity ... ok
[INFO] [stdout] test unified_pipeline::scheduler::tests::test_exclusive_ownership_all_strategies ... ok
[INFO] [stdout] test unified_pipeline::scheduler::tests::test_create_scheduler::case_12_optimized_chase ... ok
[INFO] [stdout] test unified_pipeline::scheduler::tests::test_should_attempt_step_exclusive_only_owner ... ok
[INFO] [stdout] test unified_pipeline::scheduler::thompson_sampling::tests::test_learned_preference ... ok
[INFO] [stdout] test unified_pipeline::scheduler::thompson_sampling::tests::test_update_on_failure ... ok
[INFO] [stdout] test unified_pipeline::scheduler::tests::test_should_attempt_step_parallel_always_allowed ... ok
[INFO] [stdout] test unified_pipeline::scheduler::thompson_sampling::tests::test_update_on_success ... ok
[INFO] [stdout] test unified_pipeline::scheduler::thompson_with_priors::tests::test_writer_thread_prior ... ok
[INFO] [stdout] test unified_pipeline::scheduler::thompson_with_priors::tests::test_reader_thread_prior ... ok
[INFO] [stdout] test unified_pipeline::scheduler::two_phase::tests::test_starts_in_startup_phase ... ok
[INFO] [stdout] test unified_pipeline::scheduler::two_phase::tests::test_transition_to_drain ... ok
[INFO] [stdout] test unified_pipeline::scheduler::thompson_sampling::tests::test_get_priorities_returns_all_steps ... ok
[INFO] [stdout] test unified_pipeline::scheduler::two_phase::tests::test_transition_to_steady_state ... ok
[INFO] [stdout] test unified_pipeline::scheduler::ucb::tests::test_exploration_decreases_with_attempts ... ok
[INFO] [stdout] test unified_pipeline::scheduler::ucb::tests::test_high_success_rate_preferred ... ok
[INFO] [stdout] test unified_pipeline::scheduler::thompson_sampling::tests::test_initial_uniform_prior ... ok
[INFO] [stdout] test unified_pipeline::scheduler::ucb::tests::test_unexplored_steps_prioritized ... ok
[INFO] [stdout] test unified_pipeline::scheduler::thompson_with_priors::tests::test_group_thread_prior ... ok
[INFO] [stdout] test unified_pipeline::scheduler::thompson_with_priors::tests::test_boundary_thread_prior ... ok
[INFO] [stdout] test validation::tests::test_validate_error_rate::case_3 ... ok
[INFO] [stdout] test validation::tests::test_validate_error_rate::case_4 ... ok
[INFO] [stdout] test validation::tests::test_validate_error_rate::case_5 ... ok
[INFO] [stdout] test validation::tests::test_validate_error_rate::case_7 ... ok
[INFO] [stdout] test validation::tests::test_optional_string_to_tag_none ... ok
[INFO] [stdout] test validation::tests::test_validate_file_exists_invalid ... ok
[INFO] [stdout] test validation::tests::test_validate_error_rate::case_6 ... ok
[INFO] [stdout] test validation::tests::test_optional_string_to_tag_some_invalid ... ok
[INFO] [stdout] test validation::tests::test_optional_string_to_tag_some_valid ... ok
[INFO] [stdout] test validation::tests::test_string_to_tag_invalid_length ... ok
[INFO] [stdout] test validation::tests::test_validate_file_exists_valid ... ok
[INFO] [stdout] test validation::tests::test_string_to_tag_valid ... ok
[INFO] [stdout] test validation::tests::test_validate_error_rate::case_1 ... ok
[INFO] [stdout] test validation::tests::test_validate_error_rate::case_2 ... ok
[INFO] [stdout] test validation::tests::test_validate_positive_valid ... ok
[INFO] [stdout] test validation::tests::test_validate_positive_zero ... ok
[INFO] [stdout] test validation::tests::test_validate_quality_score::case_2 ... ok
[INFO] [stdout] test validation::tests::test_validate_quality_score::case_1 ... ok
[INFO] [stdout] test validation::tests::test_validate_quality_score::case_4 ... ok
[INFO] [stdout] test validation::tests::test_validate_quality_score::case_3 ... ok
[INFO] [stdout] test validation::tests::test_validate_quality_score::case_5 ... ok
[INFO] [stdout] test validation::tests::test_validate_quality_score::case_6 ... ok
[INFO] [stdout] test validation::tests::test_validate_files_exist_one_invalid ... ok
[INFO] [stdout] test validation::tests::test_validate_min_max_invalid ... ok
[INFO] [stdout] test validation::tests::test_validate_min_max_valid ... ok
[INFO] [stdout] test validation::tests::test_validate_tag::case_1 ... ok
[INFO] [stdout] test validation::tests::test_validate_positive_negative ... ok
[INFO] [stdout] test validation::tests::test_validate_tag::case_2 ... ok
[INFO] [stdout] test validation::tests::test_validate_files_exist_all_valid ... ok
[INFO] [stdout] test validation::tests::test_validate_tag::case_3 ... ok
[INFO] [stdout] test validation::tests::test_validate_tag::case_5 ... ok
[INFO] [stdout] test validation::tests::test_validate_tag::case_4 ... ok
[INFO] [stdout] test validation::tests::test_validate_tag::case_6 ... ok
[INFO] [stdout] test variant_review::tests::test_base_counts_new ... ok
[INFO] [stdout] test variant_review::tests::test_variant_with_genotype_and_filters ... ok
[INFO] [stdout] test variant_review::tests::test_format_insert_string_cross_contig_returns_na ... ok
[INFO] [stdout] test variant_review::tests::test_format_insert_string_fr_pair_f1r2 ... ok
[INFO] [stdout] test variant_review::tests::test_format_insert_string_mate_unmapped_returns_na ... ok
[INFO] [stdout] test variant_review::tests::test_format_insert_string_second_of_pair_forward ... ok
[INFO] [stdout] test variant_review::tests::test_format_insert_string_unmapped_returns_na ... ok
[INFO] [stdout] test variant_review::tests::test_base_counts_add_base ... ok
[INFO] [stdout] test variant_review::tests::test_format_insert_string_fr_pair_f2r1 ... ok
[INFO] [stdout] test variant_review::tests::test_format_insert_string_same_orientation_returns_na ... ok
[INFO] [stdout] test variant_review::tests::test_format_insert_string_second_of_pair_reverse ... ok
[INFO] [stdout] test variant_review::tests::test_format_insert_string_unpaired ... ok
[INFO] [stdout] test variant_review::tests::test_variant_new ... ok
[INFO] [stdout] test variant_review::tests::test_read_number_suffix ... ok
[INFO] [stdout] test variant_review::tests::test_base_counts_ignore_non_bases ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::bin::tests::test_region_to_bin ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::data::field::tag::tests::test_write_tag ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::bin::tests::test_write_bin ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::data::field::ty::tests::test_type_to_u8 ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::data::field::tests::test_write_field ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::cigar::op::kind::tests::test_encode_kind ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::data::field::value::array::tests::test_write_array ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::cigar::op::tests::test_encode_op ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::data::field::ty::tests::test_write_type ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::data::field::value::array::subtype::tests::test_write_subtype ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::data::field::tests::test_write_cigar ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::data::field::value::hex::tests::test_is_valid ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::cigar::tests::test_write_cigar ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::name::tests::test_put_name_with_invalid_name ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::data::field::value::string::tests::test_write_string ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::position::tests::test_write_position ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::data::field::value::tests::test_write_value ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::data::tests::test_write_data ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::flags::tests::test_write_flags ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::mapping_quality::tests::test_write_mapping_quality ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::data::field::value::string::tests::test_is_valid ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::quality_scores::tests::test_write_quality_scores ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::sequence::tests::test_write_length ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::data::field::value::hex::tests::test_write_hex ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::sequence::tests::test_write_length_with_out_of_range_base_count ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::reference_sequence_id::tests::test_write_reference_sequence_id ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::sequence::tests::test_encode_base ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::sequence::tests::test_write_sequence ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::sequence::tests::test_write_sequence_from_slice ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::template_length::tests::test_write_template_length ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::tests::test_encode_with_default_fields ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::tests::test_encode_with_all_fields ... ok
[INFO] [stdout] test vendored::bgzf_multithreaded::tests::test_position_tracking_initial ... ok
[INFO] [stdout] test vendored::bgzf_multithreaded::tests::test_roundtrip ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::name::tests::test_write_length ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::name::tests::test_write_name ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::quality_scores::tests::test_write_quality_scores_from_slice ... ok
[INFO] [stdout] test vendored::bgzf_multithreaded::tests::test_position_tracking_after_writes ... ok
[INFO] [stdout] test vendored::bgzf_multithreaded::tests::test_builder ... ok
[INFO] [stdout] test vendored::bgzf_multithreaded::tests::test_eof_marker ... ok
[INFO] [stdout] test vendored::bgzf_multithreaded::tests::test_new_and_finish ... ok
[INFO] [stdout] test vendored::bgzf_multithreaded::tests::test_block_info_notifications ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::cigar::tests::test_overflowing_write_cigar_op_count ... ok
[INFO] [stdout] test vendored::bgzf_multithreaded::tests::test_large_data ... ok
[INFO] [stdout] test vendored::bgzf_multithreaded::tests::test_multiple_workers ... ok
[INFO] [stdout] test unified_pipeline::scheduler::balanced_chase::tests::test_zero_threads_panics - should panic ... ok
[INFO] [stdout] test unified_pipeline::fastq::tests::test_discarded_push_causes_data_loss ... ok
[INFO] [stdout] test vendored::bam_codec::encoder::tests::test_encode_with_oversized_cigar ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 933 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.02s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/fgumi-e75665a3c47b8c23)
[INFO] [stdout] 
[INFO] [stdout] running 594 tests
[INFO] [stdout] test commands::clip::tests::test_clip_execute_no_clipping_option ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_both_extending_and_overlapping ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_combination_overlapping_and_fixed ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_asymmetric_fixed_positions ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_execute_soft_with_mask_mode ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_execute_invalid_clipping_mode ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_all_three_modes_comparison ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_all_modes_enabled ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_execute_with_extending_past_mate ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_execute_with_metrics ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_no_regenerate_tags_option ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_execute_with_fixed_positions ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_execute_soft_mode ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_execute_with_fragment ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_execute_with_sort_order ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_extending_past_mate_only ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_execute_with_upgrade_clipping ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_fragment_no_clipping_with_metrics ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_fragment_with_metrics ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_large_fixed_positions ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_modes_with_auto_clip_attributes ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_overlapping_reads_only ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_execute_all_clipping_options ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_single_read_end_clipping ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_processed_batch_memory_estimate ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_soft_with_mask_mode ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_execute_with_auto_clip_attributes ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_regenerate_tags_always_true ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_with_metrics_and_upgrade ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_pair_with_metrics_swapped_flags ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_with_fixed_positions ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_pair_with_metrics ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_with_metrics_output ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_with_overlapping_enabled ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_with_queryname_sort_order ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_with_sort_order_specification ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_with_tag_regeneration ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_with_unsorted_sort_order ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_with_upgrade_all_clipping ... ok
[INFO] [stdout] test commands::clip::tests::test_default_clip_parameters ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_zero_bases_all_positions ... ok
[INFO] [stdout] test commands::clip::tests::test_clipping_mode_string_values ... ok
[INFO] [stdout] test commands::clip::tests::test_threading_modes::case_1_fast_path ... ok
[INFO] [stdout] test commands::codec::tests::test_codec_execute_basic ... ok
[INFO] [stdout] test commands::codec::tests::test_codec_execute_validation_errors ... ok
[INFO] [stdout] test commands::codec::tests::test_codec_execute_with_max_reads ... ok
[INFO] [stdout] test commands::codec::tests::test_codec_processed_batch_memory_estimate ... ok
[INFO] [stdout] test commands::codec::tests::test_codec_execute_with_per_base_tags ... ok
[INFO] [stdout] test commands::codec::tests::test_stats_to_metrics ... ok
[INFO] [stdout] test commands::codec::tests::test_validation ... ok
[INFO] [stdout] test commands::common::tests::test_consensus_calling_options_validate_defaults ... ok
[INFO] [stdout] test commands::common::tests::test_consensus_calling_options_validate_error_rate_pre_umi_too_high ... ok
[INFO] [stdout] test commands::common::tests::test_consensus_calling_options_validate_error_rate_post_umi_too_high ... ok
[INFO] [stdout] test commands::common::tests::test_consensus_calling_options_validate_valid ... ok
[INFO] [stdout] test commands::common::tests::test_log_message ... ok
[INFO] [stdout] test commands::common::tests::test_new_uses_pipeline ... ok
[INFO] [stdout] test commands::common::tests::test_none_is_single_threaded ... ok
[INFO] [stdout] test commands::common::tests::test_num_threads ... ok
[INFO] [stdout] test commands::common::tests::test_parse_memory_size_human_readable ... ok
[INFO] [stdout] test commands::common::tests::test_parse_memory_size_invalid ... ok
[INFO] [stdout] test commands::common::tests::test_mode_detection ... ok
[INFO] [stdout] test commands::common::tests::test_parse_memory_size_plain_numbers ... ok
[INFO] [stdout] test commands::common::tests::test_parse_memory_size_whitespace_handling ... ok
[INFO] [stdout] test commands::common::tests::test_parse_memory_size_zero ... ok
[INFO] [stdout] test commands::common::tests::test_queue_len ... ok
[INFO] [stdout] test commands::common::tests::test_queue_memory_options_compute_basic ... ok
[INFO] [stdout] test commands::common::tests::test_queue_memory_options_human_readable ... ok
[INFO] [stdout] test commands::codec::tests::test_threading_modes::case_1_fast_path ... ok
[INFO] [stdout] test commands::common::tests::test_queue_memory_options_overflow ... ok
[INFO] [stdout] test commands::common::tests::test_queue_memory_options_legacy_migration ... ok
[INFO] [stdout] test commands::common::tests::test_queue_memory_options_small_value ... ok
[INFO] [stdout] test commands::common::tests::test_scheduler_options_collect_stats ... ok
[INFO] [stdout] test commands::common::tests::test_scheduler_options_deadlock_timeout ... ok
[INFO] [stdout] test commands::codec::tests::test_codec_execute_with_rejects ... ok
[INFO] [stdout] test commands::codec::tests::test_codec_execute_with_trim ... ok
[INFO] [stdout] test commands::common::tests::test_scheduler_options_strategy ... ok
[INFO] [stdout] test commands::codec::tests::test_codec_execute_with_stats ... ok
[INFO] [stdout] test commands::clip::tests::test_clip_execute_basic_overlapping ... ok
[INFO] [stdout] test commands::common::tests::test_queue_memory_options_validation_errors ... ok
[INFO] [stdout] test commands::common::tests::test_scheduler_options_deadlock_recover ... ok
[INFO] [stdout] test commands::common::tests::test_scheduler_options_default ... ok
[INFO] [stdout] test commands::consensus_runner::tests::test_collapse_read_group_tag_all_missing ... ok
[INFO] [stdout] test commands::common::tests::test_parse_memory_size_edge_cases ... ok
[INFO] [stdout] test commands::common::tests::test_parse_memory_size_overflow ... ok
[INFO] [stdout] test commands::consensus_runner::tests::test_collapse_read_group_tag_no_read_groups ... ok
[INFO] [stdout] test commands::consensus_runner::tests::test_collapse_read_group_tag_single_value ... ok
[INFO] [stdout] test commands::consensus_runner::tests::test_collapse_read_group_tag_duplicate_values ... ok
[INFO] [stdout] test commands::consensus_runner::tests::test_stats_merge ... ok
[INFO] [stdout] test commands::consensus_runner::tests::test_create_unmapped_consensus_header_collapses_tags ... ok
[INFO] [stdout] test commands::consensus_runner::tests::test_collapse_read_group_tag_missing_from_some_rgs ... ok
[INFO] [stdout] test commands::consensus_runner::tests::test_collapse_read_group_tag_multiple_distinct_values ... ok
[INFO] [stdout] test commands::consensus_runner::tests::test_collapse_read_group_tag_platform_multiple_distinct ... ok
[INFO] [stdout] test commands::consensus_runner::tests::test_create_unmapped_consensus_header_no_input_rgs ... ok
[INFO] [stdout] test commands::correct::tests::test_apply_correction_to_raw_corrects_umi ... ok
[INFO] [stdout] test commands::correct::tests::test_apply_correction_to_raw_dont_store_original ... ok
[INFO] [stdout] test commands::correct::tests::test_apply_correction_to_raw_no_correction_needed ... ok
[INFO] [stdout] test commands::correct::tests::test_apply_correction_to_record_dont_store_original ... ok
[INFO] [stdout] test commands::correct::tests::test_apply_correction_to_record_no_correction_needed ... ok
[INFO] [stdout] test commands::consensus_runner::tests::test_stats_to_metrics_empty ... ok
[INFO] [stdout] test commands::consensus_runner::tests::test_stats_to_metrics_with_values ... ok
[INFO] [stdout] test commands::correct::tests::test_compute_template_correction_dual_umi ... ok
[INFO] [stdout] test commands::correct::tests::test_compute_template_correction_with_mismatch ... ok
[INFO] [stdout] test commands::correct::tests::test_compute_template_correction_with_revcomp ... ok
[INFO] [stdout] test commands::correct::tests::test_compute_template_correction_wrong_length ... ok
[INFO] [stdout] test commands::correct::tests::test_count_mismatches_with_max ... ok
[INFO] [stdout] test commands::correct::tests::test_apply_correction_to_record_with_correction ... ok
[INFO] [stdout] test commands::correct::tests::test_compute_template_correction_too_many_mismatches ... ok
[INFO] [stdout] test commands::correct::tests::test_extract_and_validate_template_umi_empty ... ok
[INFO] [stdout] test commands::consensus_runner::tests::test_collapse_read_group_tag_platform_uppercased ... ok
[INFO] [stdout] test commands::correct::tests::test_all_reads_already_correct ... ok
[INFO] [stdout] test commands::correct::tests::test_extract_and_validate_template_umi_paired_no_umi ... ok
[INFO] [stdout] test commands::correct::tests::test_extract_and_validate_template_umi_raw_empty ... ok
[INFO] [stdout] test commands::correct::tests::test_end_to_end_single_umis ... ok
[INFO] [stdout] test commands::correct::tests::test_extract_and_validate_template_umi_raw_matching_pair ... ok
[INFO] [stdout] test commands::correct::tests::test_extract_and_validate_template_umi_raw_no_umi_tag ... ok
[INFO] [stdout] test commands::correct::tests::test_extract_and_validate_template_umi_raw_single_record ... ok
[INFO] [stdout] test commands::correct::tests::test_extract_and_validate_template_umi_single_record_with_umi ... ok
[INFO] [stdout] test commands::correct::tests::test_extract_and_validate_template_umi_single_record_without_umi ... ok
[INFO] [stdout] test commands::correct::tests::test_find_best_match_perfect ... ok
[INFO] [stdout] test commands::correct::tests::test_find_best_match_with_mismatches ... ok
[INFO] [stdout] test commands::correct::tests::test_find_umi_pairs_within_distance_none ... ok
[INFO] [stdout] test commands::correct::tests::test_find_umi_pairs_within_distance_some ... ok
[INFO] [stdout] test commands::correct::tests::test_match_with_many_mismatches ... ok
[INFO] [stdout] test commands::correct::tests::test_compute_template_correction_perfect_match ... ok
[INFO] [stdout] test commands::correct::tests::test_metrics_includes_all_umi_rows_even_with_zero_counts ... ok
[INFO] [stdout] test commands::correct::tests::test_end_to_end_duplex_umis ... ok
[INFO] [stdout] test commands::clip::tests::test_threading_modes::case_2_pipeline_1 ... ok
[INFO] [stdout] test commands::correct::tests::test_no_match_when_umis_too_similar ... ok
[INFO] [stdout] test commands::common::tests::test_consensus_calling_options_validate_min_consensus_at_min ... ok
[INFO] [stdout] test commands::codec::tests::test_threading_modes::case_3_pipeline_2 ... ok
[INFO] [stdout] test commands::correct::tests::test_exact_match_only_mode ... ok
[INFO] [stdout] test commands::correct::tests::test_original_umi_storage ... ok
[INFO] [stdout] test commands::correct::tests::test_extract_and_validate_template_umi_paired_matching ... ok
[INFO] [stdout] test commands::correct::tests::test_rejects_incorrect_length_umis ... ok
[INFO] [stdout] test commands::correct::tests::test_rejects_reads_without_umis ... ok
[INFO] [stdout] test commands::clip::tests::test_threading_modes::case_3_pipeline_2 ... ok
[INFO] [stdout] test commands::codec::tests::test_codec_execute_multithreaded ... ok
[INFO] [stdout] test commands::correct::tests::test_reverse_complement ... ok
[INFO] [stdout] test commands::correct::tests::test_threading_modes::case_1_fast_path ... ok
[INFO] [stdout] test commands::correct::tests::test_metrics_includes_unmatched_umi_row ... ok
[INFO] [stdout] test commands::correct::tests::test_single_known_umi ... ok
[INFO] [stdout] test commands::correct::tests::test_output_order_preserved_with_8_threads ... ok
[INFO] [stdout] test commands::correct::tests::test_umi_loading_from_file ... ok
[INFO] [stdout] test commands::correct::tests::test_umis_with_n_bases ... ok
[INFO] [stdout] test commands::dedup::tests::test_dedup_metrics_output_from ... ok
[INFO] [stdout] test commands::dedup::tests::test_duplicate_rate_all_duplicates ... ok
[INFO] [stdout] test commands::dedup::tests::test_duplicate_rate_calculation ... ok
[INFO] [stdout] test commands::correct::tests::test_case_sensitivity ... ok
[INFO] [stdout] test commands::correct::tests::test_very_long_umis ... ok
[INFO] [stdout] test commands::dedup::tests::test_duplicate_rate_zero_templates ... ok
[INFO] [stdout] test commands::correct::tests::test_output_order_preserved_with_multiple_threads ... ok
[INFO] [stdout] test commands::dedup::tests::test_filter_paired_template_rejects_r2_low_mapq ... ok
[INFO] [stdout] test commands::codec::tests::test_threading_modes::case_2_pipeline_1 ... ok
[INFO] [stdout] test commands::dedup::tests::test_filter_paired_template_rejects_r2_umi_with_n ... ok
[INFO] [stdout] test commands::dedup::tests::test_filter_template_accepts_missing_umi_when_no_umi_mode ... ok
[INFO] [stdout] test commands::dedup::tests::test_filter_paired_no_reads_rejected ... ok
[INFO] [stdout] test commands::dedup::tests::test_filter_template_accepts_umi_with_n_when_no_umi_mode ... ok
[INFO] [stdout] test commands::dedup::tests::test_filter_template_accepts_qc_fail_when_included ... ok
[INFO] [stdout] test commands::dedup::tests::test_filter_template_raw_accepts_missing_umi_when_no_umi_mode ... ok
[INFO] [stdout] test commands::dedup::tests::test_filter_template_accepts_valid_template ... ok
[INFO] [stdout] test commands::dedup::tests::test_filter_template_raw_accepts_short_umi_when_no_umi_mode ... ok
[INFO] [stdout] test commands::dedup::tests::test_filter_template_raw_accepts_valid ... ok
[INFO] [stdout] test commands::dedup::tests::test_filter_template_raw_mq_tag_type_mismatch_bypasses_filter ... ok
[INFO] [stdout] test commands::dedup::tests::test_filter_template_raw_accepts_umi_with_n_when_no_umi_mode ... ok
[INFO] [stdout] test commands::dedup::tests::test_filter_template_accepts_paired_umi_with_dash ... ok
[INFO] [stdout] test commands::dedup::tests::test_filter_template_accepts_short_umi_when_no_umi_mode ... ok
[INFO] [stdout] test commands::dedup::tests::test_filter_paired_template_accepts_valid ... ok
[INFO] [stdout] test commands::correct::tests::test_threading_modes::case_3_pipeline_2 ... ok
[INFO] [stdout] test commands::dedup::tests::test_filter_template_raw_rejects_low_mapq ... ok
[INFO] [stdout] test commands::dedup::tests::test_filter_template_raw_rejects_short_umi ... ok
[INFO] [stdout] test commands::correct::tests::test_metrics_unmatched_row_with_multithreaded ... ok
[INFO] [stdout] test commands::dedup::tests::test_filter_template_raw_rejects_umi_with_n ... ok
[INFO] [stdout] test commands::dedup::tests::test_filter_template_raw_rejects_qc_fail ... ok
[INFO] [stdout] test commands::dedup::tests::test_filter_template_rejects_qc_fail ... ok
[INFO] [stdout] test commands::dedup::tests::test_filter_template_raw_rejects_unmapped ... ok
[INFO] [stdout] test commands::dedup::tests::test_filter_template_raw_truncated_record_no_panic ... ok
[INFO] [stdout] test commands::dedup::tests::test_filter_template_rejects_missing_umi_tag ... ok
[INFO] [stdout] test commands::dedup::tests::test_filter_template_rejects_low_mapq ... ok
[INFO] [stdout] test commands::dedup::tests::test_filter_template_rejects_short_umi ... ok
[INFO] [stdout] test commands::dedup::tests::test_get_pair_orientation_r1_reverse ... ok
[INFO] [stdout] test commands::dedup::tests::test_is_r1_earlier_equal_position ... ok
[INFO] [stdout] test commands::dedup::tests::test_is_r1_earlier_false ... ok
[INFO] [stdout] test commands::dedup::tests::test_is_r1_earlier_true ... ok
[INFO] [stdout] test commands::dedup::tests::test_get_pair_orientation_both_forward ... ok
[INFO] [stdout] test commands::dedup::tests::test_filter_template_rejects_umi_with_n ... ok
[INFO] [stdout] test commands::dedup::tests::test_filter_template_rejects_unmapped ... ok
[INFO] [stdout] test commands::dedup::tests::test_get_pair_orientation_both_reverse ... ok
[INFO] [stdout] test commands::dedup::tests::test_mark_duplicates_counts_duplicate_reads ... ok
[INFO] [stdout] test commands::dedup::tests::test_mark_duplicates_single_template ... ok
[INFO] [stdout] test commands::dedup::tests::test_mark_duplicates_size_4_general_case ... ok
[INFO] [stdout] test commands::dedup::tests::test_mark_duplicates_tie_breaking_size_2 ... ok
[INFO] [stdout] test commands::dedup::tests::test_mark_duplicates_tie_breaking_size_3_all_equal ... ok
[INFO] [stdout] test commands::dedup::tests::test_mark_duplicates_tie_breaking_size_3_second_and_third_tie ... ok
[INFO] [stdout] test commands::dedup::tests::test_mark_duplicates_tie_breaking_size_4_all_equal ... ok
[INFO] [stdout] test commands::dedup::tests::test_mark_duplicates_tie_breaking_size_4_partial_tie ... ok
[INFO] [stdout] test commands::dedup::tests::test_mark_duplicates_size_2_first_higher ... ok
[INFO] [stdout] test commands::dedup::tests::test_mark_duplicates_size_2_second_higher ... ok
[INFO] [stdout] test commands::dedup::tests::test_mark_duplicates_size_3_first_highest ... ok
[INFO] [stdout] test commands::dedup::tests::test_score_template ... ok
[INFO] [stdout] test commands::dedup::tests::test_processed_dedup_group_memory_estimate ... ok
[INFO] [stdout] test commands::dedup::tests::test_score_template_low_quality ... ok
[INFO] [stdout] test commands::dedup::tests::test_score_template_paired_end ... ok
[INFO] [stdout] test commands::dedup::tests::test_score_template_paired_end_asymmetric ... ok
[INFO] [stdout] test commands::dedup::tests::test_score_template_paired_end_capped ... ok
[INFO] [stdout] test commands::dedup::tests::test_score_template_paired_end_mixed_capping ... ok
[INFO] [stdout] test commands::dedup::tests::test_score_template_raw_basic ... ok
[INFO] [stdout] test commands::dedup::tests::test_metrics_default ... ok
[INFO] [stdout] test commands::dedup::tests::test_score_template_raw_low_quality ... ok
[INFO] [stdout] test commands::dedup::tests::test_metrics_merge ... ok
[INFO] [stdout] test commands::correct::tests::test_revcomp_option ... ok
[INFO] [stdout] test commands::dedup::tests::test_set_duplicate_flag_on_raw_record ... ok
[INFO] [stdout] test commands::dedup::tests::test_set_mi_tag_assigned ... ok
[INFO] [stdout] test commands::dedup::tests::test_score_template_raw_matches_recordbuf ... ok
[INFO] [stdout] test commands::dedup::tests::test_score_template_raw_paired ... ok
[INFO] [stdout] test commands::dedup::tests::test_truncate_umis_truncates ... ok
[INFO] [stdout] test commands::dedup::tests::test_umi_for_read_identity_lowercase_gets_uppercased ... ok
[INFO] [stdout] test commands::dedup::tests::test_umi_for_read_identity_uppercase ... ok
[INFO] [stdout] test commands::dedup::tests::test_set_mi_tag_unassigned ... ok
[INFO] [stdout] test commands::dedup::tests::test_truncate_umis_no_min_length ... ok
[INFO] [stdout] test commands::dedup::tests::test_umi_for_read_paired_r1_earlier ... ok
[INFO] [stdout] test commands::dedup::tests::test_umi_for_read_paired_r2_earlier ... ok
[INFO] [stdout] test commands::downsample::tests::test_deterministic_sampling_with_seed ... ok
[INFO] [stdout] test commands::downsample::tests::test_downsample_parameters ... ok
[INFO] [stdout] test commands::downsample::tests::test_family_iterator_empty ... ok
[INFO] [stdout] test commands::downsample::tests::test_family_iterator_single_family ... ok
[INFO] [stdout] test commands::downsample::tests::test_get_mi_tag_integer ... ok
[INFO] [stdout] test commands::downsample::tests::test_family_iterator_multiple_families ... ok
[INFO] [stdout] test commands::dedup::tests::test_set_mi_tag_with_base_offset ... ok
[INFO] [stdout] test commands::dedup::tests::test_mark_duplicates_size_3_third_highest ... ok
[INFO] [stdout] test commands::correct::tests::test_extract_and_validate_template_umi_inconsistent_presence - should panic ... ok
[INFO] [stdout] test commands::correct::tests::test_extract_and_validate_template_umi_paired_mismatched - should panic ... ok
[INFO] [stdout] test commands::downsample::tests::test_histogram_sorted_by_family_size ... ok
[INFO] [stdout] test commands::common::tests::test_consensus_calling_options_validate_min_consensus_too_low ... ok
[INFO] [stdout] test commands::correct::tests::test_validation_different_length_umis ... ok
[INFO] [stdout] test commands::downsample::tests::test_validate_fraction_valid ... ok
[INFO] [stdout] test commands::downsample::tests::test_validate_fraction_too_low ... ok
[INFO] [stdout] test commands::dedup::tests::test_truncate_umis_error_too_short ... ok
[INFO] [stdout] test commands::dedup::tests::test_umi_for_read_paired_missing_dash_error ... ok
[INFO] [stdout] test commands::downsample::tests::test_get_mi_tag_missing ... ok
[INFO] [stdout] test commands::correct::tests::test_min_corrected_threshold ... ok
[INFO] [stdout] test commands::duplex::tests::test_custom_min_reads_single_value ... ok
[INFO] [stdout] test commands::correct::tests::test_extract_and_validate_template_umi_raw_mismatch_panics - should panic ... ok
[INFO] [stdout] test commands::duplex::tests::test_custom_min_reads_three_values ... ok
[INFO] [stdout] test commands::duplex::tests::test_default_parameters ... ok
[INFO] [stdout] test commands::duplex::tests::test_duplex_processed_batch_memory_estimate ... ok
[INFO] [stdout] test commands::duplex::tests::test_multithreaded_configuration ... ok
[INFO] [stdout] test commands::dedup::tests::test_mark_duplicates_empty_family ... ok
[INFO] [stdout] test commands::downsample::tests::test_write_histogram ... ok
[INFO] [stdout] test commands::duplex::tests::test_duplex_consensus_basic_ab_ba_pairing ... ok
[INFO] [stdout] test commands::duplex::tests::test_duplex_only_one_strand_no_consensus ... ok
[INFO] [stdout] test commands::duplex::tests::test_output_per_base_tags_enabled ... ok
[INFO] [stdout] test commands::duplex::tests::test_duplex_with_min_reads_filtering ... ok
[INFO] [stdout] test commands::duplex::tests::test_duplex_no_consensus_when_strands_mismatched_r1 ... ok
[INFO] [stdout] test commands::duplex::tests::test_duplex_with_cell_barcode_preservation ... ok
[INFO] [stdout] test commands::duplex::tests::test_duplex_with_per_base_tags ... ok
[INFO] [stdout] test commands::duplex_metrics::tests::test_duplex_metrics_validation_fails_wrong_order ... ok
[INFO] [stdout] test commands::duplex_metrics::tests::test_duplex_metrics_with_custom_thresholds ... ok
[INFO] [stdout] test commands::duplex_metrics::tests::test_duplex_umi_expected_fraction_calculation ... ok
[INFO] [stdout] test commands::downsample::tests::test_validate_fraction_too_high ... ok
[INFO] [stdout] test commands::duplex_metrics::tests::test_default_duplex_metrics_parameters ... ok
[INFO] [stdout] test commands::dedup::tests::test_metrics_merge_all_fields ... ok
[INFO] [stdout] test commands::downsample::tests::test_get_mi_tag_string ... ok
[INFO] [stdout] test commands::duplex::tests::test_trim_and_downsample_options ... ok
[INFO] [stdout] test commands::duplex_metrics::tests::test_hash_fraction_different_reads ... ok
[INFO] [stdout] test commands::duplex_metrics::tests::test_interval_overlap_logic ... ok
[INFO] [stdout] test commands::duplex_metrics::tests::test_hash_fraction_deterministic ... ok
[INFO] [stdout] test commands::duplex_metrics::tests::test_parse_intervals_bed_format ... ok
[INFO] [stdout] test commands::duplex_metrics::tests::test_parse_intervals_interval_list_format ... ok
[INFO] [stdout] test commands::duplex::tests::test_duplex_multithreading_produces_same_results ... ok
[INFO] [stdout] test commands::duplex_metrics::tests::test_reject_consensus_bam ... ok
[INFO] [stdout] test commands::duplex::tests::test_threading_modes::case_1_fast_path ... ok
[INFO] [stdout] test commands::duplex::tests::test_threading_modes::case_2_pipeline_1 ... ok
[INFO] [stdout] test commands::extract::tests::test_annotate_read_names_no_umis ... ok
[INFO] [stdout] test commands::dedup::tests::test_mark_duplicates_size_3_second_highest ... ok
[INFO] [stdout] test commands::extract::tests::test_complex_read_structures_multiple_segments ... ok
[INFO] [stdout] test commands::extract::tests::test_compression_format_detection_bgzf ... ok
[INFO] [stdout] test commands::extract::tests::test_compression_format_detection_gzip ... ok
[INFO] [stdout] test commands::extract::tests::test_compression_format_detection_plain ... ok
[INFO] [stdout] test commands::extract::tests::test_extract_cell_barcodes ... ok
[INFO] [stdout] test commands::extract::tests::test_extract_sample_barcode_qualities ... ok
[INFO] [stdout] test commands::extract::tests::test_annotate_read_names_with_umis ... ok
[INFO] [stdout] test commands::correct::tests::test_threading_modes::case_2_pipeline_1 ... ok
[INFO] [stdout] test commands::duplex::tests::test_threading_modes::case_3_pipeline_2 ... ok
[INFO] [stdout] test commands::extract::tests::test_fail_mismatched_inputs_and_read_structures - should panic ... ok
[INFO] [stdout] test commands::extract::tests::test_fail_mismatched_read_counts - should panic ... ok
[INFO] [stdout] test commands::extract::tests::test_extract_umis_from_read_names_and_sequences ... ok
[INFO] [stdout] test commands::extract::tests::test_extract_umis_from_read_names ... ok
[INFO] [stdout] test commands::extract::tests::test_fail_read_too_short_for_structure - should panic ... ok
[INFO] [stdout] test commands::extract::tests::test_complex_read_structures_with_umi_qualities ... ok
[INFO] [stdout] test commands::extract::tests::test_header_metadata ... ok
[INFO] [stdout] test commands::extract::tests::test_multithreaded_extraction ... ok
[INFO] [stdout] test commands::extract::tests::test_multithreaded_extraction_preserves_order ... ok
[INFO] [stdout] test commands::extract::tests::test_combined_annotate_read_names_and_single_tag ... ok
[INFO] [stdout] test commands::extract::tests::test_paired_end_ignore_umi_qual_tag_when_no_umis ... ok
[INFO] [stdout] test commands::extract::tests::test_mapping_quality_is_zero_for_unmapped_reads ... ok
[INFO] [stdout] test commands::extract::tests::test_fail_mismatched_read_names - should panic ... ok
[INFO] [stdout] test commands::extract::tests::test_four_fastqs ... ok
[INFO] [stdout] test commands::extract::tests::test_paired_end_with_inline_umi ... ok
[INFO] [stdout] test commands::extract::tests::test_quality_encoding_detection_ambiguous_range ... ok
[INFO] [stdout] test commands::extract::tests::test_quality_encoding_detection_empty_input ... ok
[INFO] [stdout] test commands::extract::tests::test_quality_encoding_detection_empty_reads ... ok
[INFO] [stdout] test commands::extract::tests::test_quality_encoding_detection_high_quality_phred33 ... ok
[INFO] [stdout] test commands::extract::tests::test_quality_encoding_detection_invalid_high ... ok
[INFO] [stdout] test commands::extract::tests::test_quality_encoding_detection_invalid_low ... ok
[INFO] [stdout] test commands::extract::tests::test_quality_encoding_detection_mixed_empty_and_valid ... ok
[INFO] [stdout] test commands::extract::tests::test_quality_encoding_detection_phred33 ... ok
[INFO] [stdout] test commands::extract::tests::test_quality_encoding_detection_phred64 ... ok
[INFO] [stdout] test commands::extract::tests::test_quality_encoding_to_standard_numeric_empty ... ok
[INFO] [stdout] test commands::extract::tests::test_quality_encoding_to_standard_numeric_phred33 ... ok
[INFO] [stdout] test commands::extract::tests::test_quality_encoding_to_standard_numeric_phred64 ... ok
[INFO] [stdout] test commands::extract::tests::test_paired_end_no_read_structures ... ok
[INFO] [stdout] test commands::extract::tests::test_sample_barcode_with_quality_tags_specified ... ok
[INFO] [stdout] test commands::extract::tests::test_phred64_fastq_end_to_end ... ok
[INFO] [stdout] test commands::extract::tests::test_paired_end_with_inline_umi_keep_qualities ... ok
[INFO] [stdout] test commands::extract::tests::test_single_tag_same_as_umi_tag - should panic ... ok
[INFO] [stdout] test commands::extract::tests::test_single_tag_invalid_length - should panic ... ok
[INFO] [stdout] test commands::extract::tests::test_four_fastqs_with_umi_qualities ... ok
[INFO] [stdout] test commands::extract::tests::test_single_fastq_no_read_structure ... ok
[INFO] [stdout] test commands::extract::tests::test_paired_end_with_different_read_structures ... ok
[INFO] [stdout] test commands::extract::tests::test_threading_modes::case_1_fast_path ... ok
[INFO] [stdout] test commands::extract::tests::test_single_tag ... ok
[INFO] [stdout] test commands::extract::tests::test_threading_modes::case_3_pipeline_2 ... ok
[INFO] [stdout] test commands::fastq::tests::test_complement_lookup_table ... ok
[INFO] [stdout] test commands::fastq::tests::test_parse_flags_decimal ... ok
[INFO] [stdout] test commands::fastq::tests::test_parse_flags_hex ... ok
[INFO] [stdout] test commands::extract::tests::test_threading_modes::case_2_pipeline_1 ... ok
[INFO] [stdout] test commands::fastq::tests::test_qual_to_ascii_lookup_table ... ok
[INFO] [stdout] test commands::extract::tests::test_zero_length_reads_with_fixed_structure_should_panic - should panic ... ok
[INFO] [stdout] test commands::extract::tests::test_zero_length_reads_integration_with_quality_detection ... ok
[INFO] [stdout] test commands::extract::tests::test_variable_length_reads_with_plus ... ok
[INFO] [stdout] test commands::fastq::tests::test_write_quality_bytes ... ok
[INFO] [stdout] test commands::fastq::tests::test_write_reverse_complement_bytes ... ok
[INFO] [stdout] test commands::fastq::tests::test_write_reversed_quality_bytes ... ok
[INFO] [stdout] test commands::fastq::tests::test_parse_flags_invalid ... ok
[INFO] [stdout] test commands::fastq::tests::test_quality_encoding_edge_cases ... ok
[INFO] [stdout] test commands::filter::tests::test_check_duplex_filters_raw_no_call_count_mode ... ok
[INFO] [stdout] test commands::filter::tests::test_check_filters_raw_no_call_fraction_mode ... ok
[INFO] [stdout] test commands::filter::tests::test_count_no_calls_all_ns ... ok
[INFO] [stdout] test commands::filter::tests::test_count_no_calls_empty_sequence ... ok
[INFO] [stdout] test commands::filter::tests::test_count_no_calls_no_ns ... ok
[INFO] [stdout] test commands::filter::tests::test_count_no_calls_with_ns ... ok
[INFO] [stdout] test commands::filter::tests::test_check_filters_raw_no_call_count_mode_fail ... ok
[INFO] [stdout] test commands::filter::tests::test_default_filter_parameters ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_all_optional_outputs ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_by_read_not_template ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_duplex_different_thresholds ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_execute_base_masking ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_execute_basic_simplex ... ok
[INFO] [stdout] test commands::filter::tests::test_check_filters_raw_no_call_count_mode_pass ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_execute_min_mean_base_quality ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_execute_max_no_call_filtering ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_execute_duplex_consensus ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_execute_non_template_mode ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_execute_non_template_mode_duplex ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_execute_parallel_reverse_per_base_tags ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_execute_duplex_parallel_processing ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_execute_regenerates_tags ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_execute_parallel_with_many_templates ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_execute_duplex_single_vs_multi_threaded ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_execute_reverse_per_base_tags ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_execute_with_stats_output ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_execute_parallel_with_supplementary ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_execute_parallel_with_rejects ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_high_min_base_quality ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_high_min_reads_threshold ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_lenient_error_rates ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_low_min_base_quality ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_multithreaded ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_read_fails_high_error_rate ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_read_fails_low_depth ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_read_passes_all_thresholds ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_read_without_tags ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_require_single_strand_agreement ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_reverse_per_base_tags_disabled ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_strict_error_rates ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_with_optional_outputs ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_with_rejects_output ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_with_min_mean_base_quality ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_with_stats_output ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_zero_no_call_fraction ... ok
[INFO] [stdout] test commands::filter::tests::test_invalid_error_rate ... ok
[INFO] [stdout] test commands::filter::tests::test_is_duplex_consensus_simplex ... ok
[INFO] [stdout] test commands::filter::tests::test_is_duplex_consensus_with_tag ... ok
[INFO] [stdout] test commands::filter::tests::test_mask_bases_high_error_count ... ok
[INFO] [stdout] test commands::filter::tests::test_mask_bases_low_depth ... ok
[INFO] [stdout] test commands::filter::tests::test_mask_bases_low_quality ... ok
[INFO] [stdout] test commands::filter::tests::test_mean_base_quality_empty ... ok
[INFO] [stdout] test commands::filter::tests::test_mean_base_quality_mixed ... ok
[INFO] [stdout] test commands::filter::tests::test_mean_base_quality_uniform ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_execute_with_supplementary_records ... ok
[INFO] [stdout] test commands::filter::tests::test_multithreaded_filter_configuration ... ok
[INFO] [stdout] test commands::filter::tests::test_parameter_validation ... ok
[INFO] [stdout] test commands::filter::tests::test_process_record_raw_no_reference ... ok
[INFO] [stdout] test commands::filter::tests::test_process_record_raw_no_reference_mapped_fails ... ok
[INFO] [stdout] test commands::filter::tests::test_template_passes_one_fails ... ok
[INFO] [stdout] test commands::filter::tests::test_template_passes_all_pass ... ok
[INFO] [stdout] test commands::filter::tests::test_threading_modes::case_2_pipeline_1 ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_execute_with_rejects ... ok
[INFO] [stdout] test commands::filter::tests::test_filter_execute_single_vs_multi_threaded ... ok
[INFO] [stdout] test commands::filter::tests::test_validate_base_error_rate_ordering_ab_ba ... ok
[INFO] [stdout] test commands::filter::tests::test_validate_error_rate_ordering_ab_ba ... ok
[INFO] [stdout] test commands::filter::tests::test_validate_max_no_call_fraction_integer ... ok
[INFO] [stdout] test commands::filter::tests::test_validate_max_no_call_fraction_integer_valid ... ok
[INFO] [stdout] test commands::filter::tests::test_validate_parameters_invalid_stringency_order ... ok
[INFO] [stdout] test commands::extract::tests::test_zero_length_reads ... ok
[INFO] [stdout] test commands::filter::tests::test_validate_parameters_too_many_values ... ok
[INFO] [stdout] test commands::filter::tests::test_threading_modes::case_3_pipeline_2 ... ok
[INFO] [stdout] test commands::filter::tests::test_threading_modes::case_1_default ... ok
[INFO] [stdout] test commands::group::tests::test_adjacency_no_gradient_keeps_separate ... ok
[INFO] [stdout] test commands::group::tests::test_adjacency_with_edits_0 ... ok
[INFO] [stdout] test commands::group::tests::test_adjacency_multi_thread ... ok
[INFO] [stdout] test commands::group::tests::test_allow_unmapped_adjacency_strategy ... ok
[INFO] [stdout] test commands::group::tests::test_adjacency_with_count_gradient ... ok
[INFO] [stdout] test commands::group::tests::test_allow_unmapped_mixed_mapped_unmapped ... ok
[INFO] [stdout] test commands::group::tests::test_allow_unmapped_threading_modes::case_1_fast_path ... ok
[INFO] [stdout] test commands::group::tests::test_allow_unmapped_groups_unmapped_reads ... ok
[INFO] [stdout] test commands::group::tests::test_allow_unmapped_threading_modes::case_3_pipeline_2 ... ok
[INFO] [stdout] test commands::group::tests::test_allow_unmapped_threading_modes::case_2_pipeline_1 ... ok
[INFO] [stdout] test commands::group::tests::test_cell_barcode_grouping ... ok
[INFO] [stdout] test commands::group::tests::test_discard_secondary_and_supplementary_reads ... ok
[INFO] [stdout] test commands::group::tests::test_edit_strategy_outside_edit_distance ... ok
[INFO] [stdout] test commands::group::tests::test_correctly_groups_single_end_reads ... ok
[INFO] [stdout] test commands::group::tests::test_edit_strategy_with_exact_edit_distance ... ok
[INFO] [stdout] test commands::group::tests::test_adjacency_single_thread ... ok
[INFO] [stdout] test commands::group::tests::test_cross_contig_read_pairs ... ok
[INFO] [stdout] test commands::group::tests::test_filter_template_rejects_unmapped_by_default ... ok
[INFO] [stdout] test commands::group::tests::test_filter_template_allows_unmapped_when_enabled ... ok
[INFO] [stdout] test commands::group::tests::test_family_size_histogram_generation ... ok
[INFO] [stdout] test commands::group::tests::test_edit_strategy_with_high_edit_threshold ... ok
[INFO] [stdout] test commands::group::tests::test_filtering_excludes_reads_with_n_in_umi ... ok
[INFO] [stdout] test commands::group::tests::test_filtering_excludes_reads_below_min_mapq ... ok
[INFO] [stdout] test commands::group::tests::test_get_pair_orientation_f2r1 ... ok
[INFO] [stdout] test commands::group::tests::test_get_pair_orientation_forward_tandem ... ok
[INFO] [stdout] test commands::group::tests::test_get_pair_orientation_f1r2 ... ok
[INFO] [stdout] test commands::group::tests::test_get_pair_orientation_reverse_tandem ... ok
[INFO] [stdout] test commands::group::tests::test_group_filter_template_raw_accepts_valid ... ok
[INFO] [stdout] test commands::group::tests::test_group_filter_template_raw_rejects_low_mapq ... ok
[INFO] [stdout] test commands::group::tests::test_group_filter_template_raw_no_primary_reads ... ok
[INFO] [stdout] test commands::group::tests::test_group_filter_template_raw_rejects_short_umi ... ok
[INFO] [stdout] test commands::group::tests::test_group_filter_template_raw_rejects_umi_with_n ... ok
[INFO] [stdout] test commands::group::tests::test_group_filter_template_raw_rejects_unmapped ... ok
[INFO] [stdout] test commands::group::tests::test_group_filter_template_raw_truncated_record_treated_as_missing ... ok
[INFO] [stdout] test commands::group::tests::test_group_filter_template_raw_rejects_qc_fail ... ok
[INFO] [stdout] test commands::group::tests::test_grouping_metrics_generation ... ok
[INFO] [stdout] test commands::group::tests::test_filtering_low_mapq_read_with_unmapped_mate ... ok
[INFO] [stdout] test commands::group::tests::test_identity_strategy_no_grouping ... ok
[INFO] [stdout] test commands::group::tests::test_groups_reads_correctly_basic ... ok
[INFO] [stdout] test commands::group::tests::test_identity_assigner_splits_by_pair_orientation ... ok
[INFO] [stdout] test commands::group::tests::test_min_mapq_filtering ... ok
[INFO] [stdout] test commands::group::tests::test_minimum_umi_length_filtering ... ok
[INFO] [stdout] test commands::group::tests::test_mixed_single_and_paired_end ... ok
[INFO] [stdout] test commands::group::tests::test_missing_raw_tag ... ok
[INFO] [stdout] test commands::group::tests::test_multi_thread_raw_byte_mixed_single_paired ... ok
[INFO] [stdout] test commands::group::tests::test_multi_thread_raw_byte_with_unmapped_mate ... ok
[INFO] [stdout] test commands::group::tests::test_multi_thread_strategies_raw_byte::case_1_identity ... ok
[INFO] [stdout] test commands::group::tests::test_large_family_grouping ... ok
[INFO] [stdout] test commands::group::tests::test_no_umi_mode_accepts_missing_umi_tag ... ok
[INFO] [stdout] test commands::group::tests::test_multi_thread_strategies_raw_byte::case_2_edit ... ok
[INFO] [stdout] test commands::group::tests::test_no_umi_mode_accepts_umi_with_n ... ok
[INFO] [stdout] test commands::group::tests::test_no_umi_mode_rejects_paired_strategy ... ok
[INFO] [stdout] test commands::group::tests::test_no_umi_mode_groups_by_position_only ... ok
[INFO] [stdout] test commands::group::tests::test_outputs_grouping_metrics ... ok
[INFO] [stdout] test commands::group::tests::test_outputs_family_size_histogram ... ok
[INFO] [stdout] test commands::group::tests::test_pair_orientation_splitting ... ok
[INFO] [stdout] test commands::group::tests::test_multi_thread_strategies_raw_byte::case_3_adjacency ... ok
[INFO] [stdout] test commands::group::tests::test_paired_assigner_explicit_ab_ba_symmetry ... ok
[INFO] [stdout] test commands::group::tests::test_paired_assigner_groups_same_orientation_templates ... ok
[INFO] [stdout] test commands::group::tests::test_paired_strategy_single_end_reads ... ok
[INFO] [stdout] test commands::group::tests::test_multiple_edit_distances ... ok
[INFO] [stdout] test commands::group::tests::test_paired_mode_with_absent_umi_on_left ... ok
[INFO] [stdout] test commands::group::tests::test_paired_mode_with_absent_umi_on_right ... ok
[INFO] [stdout] test commands::group::tests::test_paired_umi_missing_both_ends ... ok
[INFO] [stdout] test commands::group::tests::test_rejects_umis_shorter_than_min_length ... ok
[INFO] [stdout] test commands::group::tests::test_truncate_umis_fails_when_too_short ... ok
[INFO] [stdout] test commands::group::tests::test_truncate_umis_none_returns_unchanged ... ok
[INFO] [stdout] test commands::group::tests::test_truncate_umis_to_minimum_length ... ok
[INFO] [stdout] test commands::group::tests::test_threading_modes::case_1_fast_path ... ok
[INFO] [stdout] test commands::group::tests::test_truncates_to_min_length ... ok
[INFO] [stdout] test commands::group::tests::test_umi_for_read_assigns_ab_prefixes_by_coordinates ... ok
[INFO] [stdout] test commands::group::tests::test_umi_for_read_handles_absent_umi_ends ... ok
[INFO] [stdout] test commands::group::tests::test_umi_for_read_uppercase_for_non_paired ... ok
[INFO] [stdout] test commands::group::tests::test_threading_modes::case_3_pipeline_2 ... ok
[INFO] [stdout] test commands::group::tests::test_umi_with_only_n_bases ... ok
[INFO] [stdout] test commands::group::tests::test_unmapped_templates_filtered ... ok
[INFO] [stdout] test commands::group::tests::test_threading_modes::case_2_pipeline_1 ... ok
[INFO] [stdout] test commands::group::tests::test_without_allow_unmapped_rejects_unmapped_reads ... ok
[INFO] [stdout] test commands::group::tests::test_very_long_umis ... ok
[INFO] [stdout] test commands::merge::tests::test_merge_empty_bams_produces_output ... ok
[INFO] [stdout] test commands::merge::tests::test_merge_headers_combines_read_groups ... ok
[INFO] [stdout] test commands::merge::tests::test_merge_headers_rejects_different_ref_names ... ok
[INFO] [stdout] test commands::merge::tests::test_merge_headers_rejects_different_ref_count ... ok
[INFO] [stdout] test commands::merge::tests::test_merge_headers_single_input ... ok
[INFO] [stdout] test commands::review::tests::test_default_review_parameters ... ok
[INFO] [stdout] test commands::merge::tests::test_merge_output_aliasing_input ... ok
[INFO] [stdout] test commands::merge::tests::test_merge_headers_deduplicates_read_groups ... ok
[INFO] [stdout] test commands::group::tests::test_adjacency_deep_tree_multi_thread ... ok
[INFO] [stdout] test commands::review::tests::test_is_vcf_file_detection ... ok
[INFO] [stdout] test commands::review::tests::test_empty_vcf_produces_empty_outputs ... ok
[INFO] [stdout] test commands::review::tests::test_empty_interval_list_produces_empty_outputs ... ok
[INFO] [stdout] test commands::review::tests::test_missing_fasta_dict_fails ... ok
[INFO] [stdout] test commands::review::tests::test_review_custom_maf_threshold ... ok
[INFO] [stdout] test commands::review::tests::test_review_ignore_ns_enabled ... ok
[INFO] [stdout] test commands::review::tests::test_review_output_path_extensions ... ok
[INFO] [stdout] test commands::review::tests::test_both_ends_overlapping_variant ... ok
[INFO] [stdout] test commands::review::tests::test_missing_fasta_index_fails ... ok
[INFO] [stdout] test commands::group::tests::test_adjacency_deep_tree_single_thread ... ok
[INFO] [stdout] test commands::review::tests::test_review_with_sample_name ... ok
[INFO] [stdout] test commands::simplex::tests::test_custom_parameters ... ok
[INFO] [stdout] test commands::simplex::tests::test_default_parameters ... ok
[INFO] [stdout] test commands::simplex::tests::test_custom_read_name_prefix ... ok
[INFO] [stdout] test commands::simplex::tests::test_end_to_end_single_end_workflow ... ok
[INFO] [stdout] test commands::review::tests::test_extracts_correct_reads_for_variants ... ok
[INFO] [stdout] test commands::review::tests::test_review_tsv_contains_correct_information ... ok
[INFO] [stdout] test commands::review::tests::test_spanning_deletions_handled_correctly ... ok
[INFO] [stdout] test commands::simplex::tests::test_max_reads_less_than_min_reads_fails ... ok
[INFO] [stdout] test commands::simplex::tests::test_invalid_tag_length_fails ... ok
[INFO] [stdout] test commands::simplex::tests::test_missing_input_file_fails ... ok
[INFO] [stdout] test commands::simplex::tests::test_min_reads_filtering ... ok
[INFO] [stdout] test commands::duplex_metrics::tests::test_only_count_inserts_overlapping_interval_list ... ok
[INFO] [stdout] test commands::duplex_metrics::tests::test_generate_accurate_family_size_counts ... ok
[INFO] [stdout] test commands::duplex_metrics::tests::test_error_correct_umis_for_counting ... ok
[INFO] [stdout] test commands::duplex_metrics::tests::test_downsampling_generates_multiple_fractions ... ok
[INFO] [stdout] test commands::duplex_metrics::tests::test_only_count_inserts_overlapping_intervals ... ok
[INFO] [stdout] test commands::duplex_metrics::tests::test_count_unique_umi_observations_with_tag_families ... ok
[INFO] [stdout] test commands::duplex_metrics::tests::test_generate_accurate_duplex_family_size_counts ... ok
[INFO] [stdout] test commands::simplex::tests::test_overlapping_consensus_calling_paired ... ok
[INFO] [stdout] test commands::duplex_metrics::tests::test_count_umis_once_per_read_pair ... ok
[INFO] [stdout] test commands::duplex_metrics::tests::test_handle_empty_umi_components ... ok
[INFO] [stdout] test commands::simplex::tests::test_simplex_processed_batch_memory_estimate ... ok
[INFO] [stdout] test commands::simplex::tests::test_tag_validation ... ok
[INFO] [stdout] test commands::simplex::tests::test_statistics_file_generation ... ok
[INFO] [stdout] test commands::simplex::tests::test_reads_without_umi_tag_skipped ... ok
[INFO] [stdout] test commands::simplex::tests::test_rejects_file_generation ... ok
[INFO] [stdout] test commands::simplex::tests::test_threading_modes::case_2_pipeline_1 ... ok
[INFO] [stdout] test commands::sort::tests::test_parse_cell_tag::case_1 ... ok
[INFO] [stdout] test commands::sort::tests::test_parse_cell_tag::case_2 ... ok
[INFO] [stdout] test commands::sort::tests::test_parse_cell_tag::case_3 ... ok
[INFO] [stdout] test commands::sort::tests::test_parse_cell_tag::case_4 ... ok
[INFO] [stdout] test commands::simplex::tests::test_threading_modes::case_3_pipeline_2 ... ok
[INFO] [stdout] test commands::sort::tests::test_parse_memory_bytes ... ok
[INFO] [stdout] test commands::sort::tests::test_parse_memory_decimal ... ok
[INFO] [stdout] test commands::sort::tests::test_parse_cell_tag_invalid_single_char ... ok
[INFO] [stdout] test commands::sort::tests::test_parse_cell_tag_invalid_too_long ... ok
[INFO] [stdout] test commands::sort::tests::test_parse_memory_gigabytes ... ok
[INFO] [stdout] test commands::sort::tests::test_parse_memory_megabytes ... ok
[INFO] [stdout] test commands::sort::tests::test_parse_memory_kilobytes ... ok
[INFO] [stdout] test commands::sort::tests::test_parse_memory_invalid ... ok
[INFO] [stdout] test commands::sort::tests::test_parse_memory_lowercase ... ok
[INFO] [stdout] test commands::simplex::tests::test_trim_enabled ... ok
[INFO] [stdout] test commands::sort::tests::test_sort_order_conversion ... ok
[INFO] [stdout] test commands::review::tests::test_no_calls_handled_correctly ... ok
[INFO] [stdout] test commands::simplex::tests::test_overlapping_consensus_unpaired_read ... ok
[INFO] [stdout] test commands::sort::tests::test_verify_sort_order_unsorted ... ok
[INFO] [stdout] test commands::simplex::tests::test_threading_modes::case_1_fast_path ... ok
[INFO] [stdout] test commands::sort::tests::test_verify_sort_order_empty ... ok
[INFO] [stdout] test commands::simplex::tests::test_min_consensus_base_quality ... ok
[INFO] [stdout] test commands::duplex_metrics::tests::test_respect_min_ab_and_min_ba_for_counting_duplexes ... ok
[INFO] [stdout] test commands::zipper::tests::test_add_pa_tag_only_to_secondary_supplementary ... ok
[INFO] [stdout] test commands::zipper::tests::test_add_pa_tag_early_exit_no_secondary_supplementary ... ok
[INFO] [stdout] test commands::sort::tests::test_verify_sort_order_sorted ... ok
[INFO] [stdout] test commands::simplex::tests::test_per_base_tags_generation ... ok
[INFO] [stdout] test commands::simplex::tests::test_multithreading ... ok
[INFO] [stdout] test commands::simplex::tests::test_multithreaded_with_stats ... ok
[INFO] [stdout] test commands::zipper::tests::test_add_pa_tag_to_secondary_reverse_strand ... ok
[INFO] [stdout] test commands::zipper::tests::test_copy_tags_with_pg_present ... ok
[INFO] [stdout] test commands::zipper::tests::test_copy_tags_with_removal ... ok
[INFO] [stdout] test commands::zipper::tests::test_add_pa_tag_paired_end_r2_supplementary ... ok
[INFO] [stdout] test commands::zipper::tests::test_file_not_found_error ... ok
[INFO] [stdout] test commands::zipper::tests::test_no_pa_tag_when_no_primary ... ok
[INFO] [stdout] test commands::zipper::tests::test_add_pa_tag_to_supplementary_r1 ... ok
[INFO] [stdout] test commands::simplex::tests::test_max_reads_downsampling ... ok
[INFO] [stdout] test commands::zipper::tests::test_skip_pa_tags_false_adds_tags ... ok
[INFO] [stdout] test commands::zipper::tests::test_skip_pa_tags_parameter ... ok
[INFO] [stdout] test commands::zipper::tests::test_both_inputs_empty ... ok
[INFO] [stdout] test commands::zipper::tests::test_tag_info_expansion ... ok
[INFO] [stdout] test commands::zipper::tests::test_consensus_tag_set ... ok
[INFO] [stdout] test commands::zipper::tests::test_r2_only_mapping ... ok
[INFO] [stdout] test commands::simplex::tests::test_multithreaded_with_rejects ... ok
[INFO] [stdout] test commands::zipper::tests::test_empty_unmapped ... ok
[INFO] [stdout] test commands::zipper::tests::test_mate_info_fixing ... ok
[INFO] [stdout] test commands::zipper::tests::test_qc_flag_removal ... ok
[INFO] [stdout] test commands::zipper::tests::test_merge_mixed_strands ... ok
[INFO] [stdout] test commands::zipper::tests::test_tag_info_has_revs_or_revcomps ... ok
[INFO] [stdout] test commands::zipper::tests::test_qc_flag_transfer ... ok
[INFO] [stdout] test commands::zipper::tests::test_exclude_missing_reads ... ok
[INFO] [stdout] test commands::zipper::tests::test_multiple_secondary_alignments ... ok
[INFO] [stdout] test commands::zipper::tests::test_unpaired_reads ... ok
[INFO] [stdout] test commands::zipper::tests::test_tag_operations_on_secondary_and_supplementary ... ok
[INFO] [stdout] test commands::zipper::tests::test_pa_tag_added_during_merge ... ok
[INFO] [stdout] test commands::zipper::tests::test_unmapped_only_reads ... ok
[INFO] [stdout] test commands::zipper::tests::test_basic_merge ... ok
[INFO] [stdout] test commands::zipper::tests::test_tag_removal_reverse_revcomp ... ok
[INFO] [stdout] test commands::zipper::tests::test_multithreaded_processing ... ok
[INFO] [stdout] test commands::simplex::tests::test_end_to_end_paired_end_workflow ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 594 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.20s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration/main.rs (/opt/rustwide/target/debug/deps/integration-fee2874442dadc85)
[INFO] [stdout] 
[INFO] [stdout] running 142 tests
[INFO] [stdout] test helpers::assertions::tests::test_assert_proper_pairing ... ok
[INFO] [stdout] test helpers::bam_generator::tests::test_create_minimal_header ... ok
[INFO] [stdout] test helpers::bam_generator::tests::test_create_consensus_read ... ok
[INFO] [stdout] test helpers::bam_generator::tests::test_create_umi_family ... ok
[INFO] [stdout] test test_bam_pipeline::test_error_corrupted_bgzf ... ok
[INFO] [stdout] test helpers::assertions::tests::test_assert_mi_tag ... ok
[INFO] [stdout] test test_bam_pipeline::test_error_input_file_not_found ... ok
[INFO] [stdout] test test_bam_pipeline::test_bam_pipeline_empty_input ... ok
[INFO] [stdout] test test_bam_pipeline::test_error_output_dir_not_found ... ok
[INFO] [stdout] test test_bam_pipeline::test_error_grouper_fails ... ok
[INFO] [stdout] test test_bam_pipeline::test_error_serialize_fn_fails ... ok
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging] Correcting UMIs ...
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::correct] Loaded 1 UMI sequences of length 8
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::common] Queue memory limit: 1.5 GiB total (768 MB/thread × 2 threads)
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging] Calling CODEC consensus ...
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Starting CODEC consensus calling
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Input: /tmp/.tmpuoaFHr/input.bam
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Output: /tmp/.tmpuoaFHr/output.bam
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Min reads: 1
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Error rate pre-UMI: Q45
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Error rate post-UMI: Q40
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Min duplex length: 1
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Worker threads: 2
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Reader threads: 2
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Processing reads and calling consensus (streaming)...
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::common] Queue memory limit: 1.5 GiB total (768 MB/thread × 2 threads)
[INFO] [stdout] test test_bam_pipeline::test_bam_pipeline_passthrough ... ok
[INFO] [stdout] test test_bam_pipeline::test_bam_pipeline_with_transform ... ok
[INFO] [stdout] test test_bam_pipeline::test_error_process_fn_fails ... ok
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging] Calling duplex consensus ...
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::duplex] Duplex
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::duplex]   Input: /tmp/.tmpv0kZCW/input.bam
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::duplex]   Output: /tmp/.tmpv0kZCW/output.bam
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::duplex]   Min reads: [2]
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::duplex]   Min base quality: 10
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::duplex]   Output per-base tags: true
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::duplex]   Worker threads: 1
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::duplex]   Reader threads: 1
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::duplex]   Trim reads: false
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::duplex]   Max reads per strand: None
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::duplex]   Cell tag: Some("CB")
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::duplex]   Consensus call overlapping bases: true
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::duplex] Overlapping consensus calling enabled
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::duplex] Processing reads...
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging] Calling duplex consensus ...
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::duplex] Duplex
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::duplex]   Input: /tmp/.tmpbvW6Rt/input.bam
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::duplex]   Output: /tmp/.tmpbvW6Rt/output.bam
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::duplex]   Min reads: [1]
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::duplex]   Min base quality: 10
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::duplex]   Output per-base tags: true
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::duplex]   Worker threads: 2
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::duplex]   Reader threads: 2
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::duplex]   Trim reads: false
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::duplex]   Max reads per strand: None
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::duplex]   Cell tag: Some("CB")
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::duplex]   Consensus call overlapping bases: true
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::duplex] Wrote 0 rejected reads
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::duplex] Overlapping consensus calling enabled
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::duplex] Processing reads...
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::progress] Processed records 2 (complete)
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::consensus_runner] Overlapping consensus statistics:
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::common] Queue memory limit: 1.5 GiB total (768 MB/thread × 2 threads)
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::consensus_runner]   Overlapping bases examined: 0
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::consensus_runner]   Bases agreeing: 0
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::consensus_runner]   Bases disagreeing: 0
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::consensus_runner]   Bases corrected: 0
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging] Consensus Calling Summary:
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging]   Input reads: 14
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging]   Consensus reads: 2
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging]   Filtered reads: 2
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging] Correcting UMIs ...
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::correct] Loaded 1 UMI sequences of length 8
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::correct] Using single-threaded mode with template-level UMI correction
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::progress] Processed records 5 (complete)
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::correct] Read 5; kept 3 and rejected 2
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::correct] Total templates processed: 5
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging]   Pass rate: 14.29%
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging]   Avg reads per consensus: 0.0
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging]   Avg depth: 0.0
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging]   Top rejection reasons:
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging]     Insufficient reads to generate a consensus: 2
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging] Calling duplex consensus completed: 2 in 0s (326 items/s)
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::duplex] Done!
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging] Correcting UMIs completed: 5 in 0s (1,153 items/s)
[INFO] [stdout] test helpers::bam_generator::tests::test_create_paired_umi_family ... ok
[INFO] [stdout] test test_bam_pipeline::test_bam_pipeline_thread_counts ... ok
[INFO] [stdout] test test_bgzf_eof::test_duplex_rejects_has_bgzf_eof ... ok
[INFO] [stdout] test test_bgzf_eof::test_correct_single_threaded_rejects_has_bgzf_eof ... ok
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::clip] Clip
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::clip]   Input: /tmp/.tmp7joPKv/input.bam
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::clip]   Output: /tmp/.tmp7joPKv/output.bam
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::clip]   Clipping mode: hard
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::clip]   Clip overlapping reads: false
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::clip]   Clip extending past mate: false
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::clip]   Regenerate tags: true
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::clip]   Single-threaded mode
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging] Clipping reads ...
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::clip] Processing templates...
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::progress] Processed records 2 (complete)
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::clip] Total records processed: 2
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::clip] Templates with overlap clipping: 0
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::clip] Templates with mate extension clipping: 0
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::clip] Done!
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging] Clipping reads completed: 2 in 0s (1,113 items/s)
[INFO] [stdout] test test_clip_command::test_clip_command_basic ... ok
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging] Calling simplex consensus ...
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::simplex] Starting Simplex
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::simplex] Input: /tmp/.tmpLXOe60/input.bam
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::simplex] Output: /tmp/.tmpLXOe60/output.bam
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging] Marking duplicates ...
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::dedup] Starting dedup
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::dedup] Input: /tmp/.tmpvm5FHe/input.bam
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::dedup] Output: /tmp/.tmpvm5FHe/output.bam
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::dedup] Strategy: Identity
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::dedup] Edits: 0
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::dedup] Remove duplicates: false
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::simplex] Min reads: 2
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::simplex] Error rate pre-UMI: Q45
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::simplex] Error rate post-UMI: Q40
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::simplex] Overlapping consensus calling enabled
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::simplex] Processing reads and calling consensus (streaming)...
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::common] Queue memory limit: 1.5 GiB total (768 MB/thread × 2 threads)
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging] Filtering consensus reads ...
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::filter] Starting Filter
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::filter] Input: /tmp/.tmpcvax0X/input.bam
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::filter] Output: /tmp/.tmpcvax0X/output.bam
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::filter] Reference: /tmp/.tmpcvax0X/ref.fa
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::filter] Min reads: [1]
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::filter] Max read error rate: [0.025]
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::filter] Max base error rate: [0.1]
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::filter] Max no-call fraction: 1
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::dedup] Single-threaded mode
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging] Calling CODEC consensus ...
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::dedup] Template-coordinate sorted
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::common] Queue memory limit: 768.0 MiB total (fixed)
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::dedup] Scheduler: BalancedChaseDrain
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::dedup] Using pipeline with 1 threads
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging] Calling CODEC consensus ...
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Starting CODEC consensus calling
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Input: /tmp/.tmpn7dUSY/input.bam
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Output: /tmp/.tmpn7dUSY/output.bam
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Min reads: 1
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Error rate pre-UMI: Q45
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Error rate post-UMI: Q40
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Min duplex length: 1
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Worker threads: 1
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Reader threads: 1
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Processing reads and calling consensus (streaming)...
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::progress] Processed records 1 (complete)
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging] Correcting UMIs ...
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::correct] Loaded 1 UMI sequences of length 8
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::clip] Clip
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::clip]   Input: /tmp/.tmpmgHJVj/input.bam
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::clip]   Output: /tmp/.tmpmgHJVj/output.bam
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::clip]   Clipping mode: hard
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::clip]   Clip overlapping reads: false
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::clip]   Clip extending past mate: false
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::clip]   Regenerate tags: true
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::clip]   Using 2 threads
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging] Clipping reads ...
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Consensus calling complete
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::common] Queue memory limit: 1.5 GiB total (768 MB/thread × 2 threads)
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Total records processed: 1
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging] Consensus Calling Summary:
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging]   Input reads: 6
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging]   Consensus reads: 1
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging]   Filtered reads: 0
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging]   Pass rate: 16.67%
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging]   Avg reads per consensus: 0.0
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::common] Queue memory limit: 768.0 MiB total (fixed)
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging]   Avg depth: 0.0
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging] Calling CODEC consensus completed: 1 in 0s (51 items/s)
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::common] Queue memory limit: 1.5 GiB total (768 MB/thread × 2 threads)
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::filter] Loading reference genome into memory...
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::filter] Reference loaded in 0.0s
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::filter] Processed 1 reads; kept 1 and rejected 0
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Starting CODEC consensus calling
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Input: /tmp/.tmpBZRiTv/input.bam
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Output: /tmp/.tmpBZRiTv/output.bam
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::filter] Total bases masked: 0
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Min reads: 1
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging] Filtering consensus reads completed: 1 in 0s (40 items/s)
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Error rate pre-UMI: Q45
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Error rate post-UMI: Q40
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Min duplex length: 1
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Worker threads: 1
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Reader threads: 1
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::dedup] Deduplication complete: 2 templates (1 unique, 1 duplicates, 50.00% duplicate rate)
[INFO] [stdout] test test_codec_command::test_codec_command_cell_barcode_preservation ... ok
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi_lib::logging] Marking duplicates completed: 4 in 0s (109 items/s)
[INFO] [stderr] [2026-03-30T01:22:13Z INFO  fgumi::commands::codec] Processing reads and calling consensus (streaming)...
[INFO] [stdout] test test_bgzf_eof::test_filter_output_has_bgzf_eof ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::progress] Processed records 1 (complete)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Consensus calling complete
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Calling CODEC consensus ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Starting CODEC consensus calling
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Input: /tmp/.tmpcTAZhF/input.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Output: /tmp/.tmpcTAZhF/output.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Min reads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Error rate pre-UMI: Q45
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Error rate post-UMI: Q40
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Min duplex length: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Worker threads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Reader threads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Calling simplex consensus ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::simplex] Starting Simplex
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::simplex] Input: /tmp/.tmpsteHME/input.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::simplex] Output: /tmp/.tmpsteHME/output.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::simplex] Min reads: 2
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::simplex] Error rate pre-UMI: Q45
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::simplex] Error rate post-UMI: Q40
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::simplex] Overlapping consensus calling enabled
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::simplex] Processing reads and calling consensus (streaming)...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::common] Queue memory limit: 1.5 GiB total (768 MB/thread × 2 threads)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Processing reads and calling consensus (streaming)...
[INFO] [stdout] test test_bgzf_eof::test_dedup_output_has_bgzf_eof ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::progress] Processed records 1 (complete)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Consensus calling complete
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Total records processed: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Consensus Calling Summary:
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Input reads: 6
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Consensus reads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Filtered reads: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Pass rate: 16.67%
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Avg reads per consensus: 0.0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Avg depth: 0.0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Calling CODEC consensus completed: 1 in 0s (110 items/s)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Calling CODEC consensus ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Starting CODEC consensus calling
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Input: /tmp/.tmpID9tY8/input.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Output: /tmp/.tmpID9tY8/output.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Min reads: 2
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Error rate pre-UMI: Q45
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Error rate post-UMI: Q40
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Min duplex length: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Worker threads: 2
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Reader threads: 2
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::consensus_runner] Overlapping consensus statistics:
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Processing reads and calling consensus (streaming)...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::common] Queue memory limit: 1.5 GiB total (768 MB/thread × 2 threads)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::consensus_runner]   Overlapping bases examined: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::consensus_runner]   Bases agreeing: 0
[INFO] [stdout] test test_codec_command::test_codec_command_per_base_tags ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::consensus_runner]   Bases disagreeing: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::consensus_runner]   Bases corrected: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex] Duplex consensus calling complete
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex] Total MI groups processed: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex] Total groups processed by pipeline: 2
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Consensus Calling Summary:
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Input reads: 12
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Consensus reads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Filtered reads: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Pass rate: 8.33%
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Avg reads per consensus: 0.0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Avg depth: 0.0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex] Wrote 1 duplex consensus reads
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Calling duplex consensus completed: 0 in 0s (0.0 items/min)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Grouping reads by UMI ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::group] Starting group
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::group] Input: /tmp/.tmp41dxpB/input.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::group] Output: /tmp/.tmp41dxpB/output.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::group] Strategy: Identity
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::group] Edits: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::group] Using 2 threads
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::group] Reading input BAM
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] CODEC consensus calling complete
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Total MI groups processed: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Total groups processed by pipeline: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Consensus Calling Summary:
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Input reads: 6
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Consensus reads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Filtered reads: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Pass rate: 16.67%
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Avg reads per consensus: 0.0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Avg depth: 0.0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Wrote 1 CODEC consensus reads
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Calling CODEC consensus completed: 0 in 0s (0.0 items/min)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Calling CODEC consensus ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Starting CODEC consensus calling
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Input: /tmp/.tmpQBwUwN/input.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Output: /tmp/.tmpQBwUwN/output.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Min reads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Error rate pre-UMI: Q45
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Error rate post-UMI: Q40
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Min duplex length: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Worker threads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Total records processed: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Reader threads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Consensus Calling Summary:
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Input reads: 6
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Consensus reads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Filtered reads: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Pass rate: 16.67%
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Avg reads per consensus: 0.0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Avg depth: 0.0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Calling CODEC consensus completed: 1 in 0s (15 items/s)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Processing reads and calling consensus (streaming)...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::group] Input is template-coordinate sorted
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::common] Queue memory limit: 1.5 GiB total (768 MB/thread × 2 threads)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::group] Scheduler: BalancedChaseDrain
[INFO] [stdout] test test_bgzf_eof::test_duplex_output_has_bgzf_eof ... ok
[INFO] [stdout] test test_codec_command::test_codec_command_basic_consensus ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::clip] Clip
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::clip]   Input: /tmp/.tmp8WjHEf/input.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::clip]   Output: /tmp/.tmp8WjHEf/output.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::clip]   Clipping mode: hard
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::clip]   Clip overlapping reads: false
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::clip]   Clip extending past mate: false
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::progress] Processed records 2 (complete)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Consensus calling complete
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Total records processed: 2
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Consensus Calling Summary:
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Input reads: 10
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Consensus reads: 2
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Filtered reads: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Pass rate: 20.00%
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Avg reads per consensus: 0.0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Avg depth: 0.0
[INFO] [stdout] test test_codec_pipeline::test_codec_consensus_has_required_tags ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Wrote statistics to: /tmp/.tmpQBwUwN/stats.tsv
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Calling CODEC consensus completed: 2 in 0s (173 items/s)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::clip]   Regenerate tags: true
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::clip]   Single-threaded mode
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Clipping reads ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::clip] Processing templates...
[INFO] [stdout] test test_codec_pipeline::test_codec_empty_input ... ok
[INFO] [stdout] test test_codec_pipeline::test_codec_fragment_reads_rejection ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::progress] Processed records 2 (complete)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::clip] Total records processed: 2
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::clip] Templates with overlap clipping: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::clip] Templates with mate extension clipping: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::clip] Writing metrics to /tmp/.tmp8WjHEf/metrics.txt
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::correct] Wrote 2 rejected records to rejects file
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::correct] Read 5; kept 3 and rejected 2
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::correct] Total templates processed: 5
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Correcting UMIs completed: 5 in 0s (30 items/s)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::clip] Metrics written successfully
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Calling CODEC consensus ...
[INFO] [stdout] test test_codec_pipeline::test_codec_insufficient_reads_rejection ... ok
[INFO] [stdout] test test_codec_command::test_codec_command_with_stats ... ok
[INFO] [stdout] test test_codec_pipeline::test_codec_min_duplex_length_filter ... ok
[INFO] [stdout] test test_bgzf_eof::test_correct_rejects_has_bgzf_eof ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Starting CODEC consensus calling
[INFO] [stdout] test test_codec_pipeline::test_codec_multiple_pairs_consensus ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Input: /tmp/.tmpEebYZo/input.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Output: /tmp/.tmpEebYZo/output.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Min reads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Error rate pre-UMI: Q45
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Error rate post-UMI: Q40
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Min duplex length: 100
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Worker threads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Reader threads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::clip] Done!
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Clipping reads completed: 2 in 0s (110 items/s)
[INFO] [stdout] test test_codec_pipeline::test_codec_rejected_reads_tracking ... ok
[INFO] [stdout] test test_codec_pipeline::test_codec_single_pair_consensus ... ok
[INFO] [stdout] test test_codec_pipeline::test_codec_statistics_tracking ... ok
[INFO] [stdout] test test_clip_command::test_clip_command_with_metrics ... ok
[INFO] [stdout] test test_bgzf_eof::test_codec_output_has_bgzf_eof ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Processing reads and calling consensus (streaming)...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Consensus calling complete
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Total records processed: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Consensus Calling Summary:
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Input reads: 6
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Consensus reads: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Filtered reads: 6
[INFO] [stdout] test test_bgzf_eof::test_simplex_rejects_has_bgzf_eof ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Correcting UMIs ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::correct] Loaded 1 UMI sequences of length 8
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Pass rate: 0.00%
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Top rejection reasons:
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]     Insufficient reads to generate a consensus: 6
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Calling CODEC consensus completed: 0 in 0s (0.0 items/min)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::correct] Using single-threaded mode with template-level UMI correction
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::simplex] Wrote 2 rejected reads
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::consensus_runner] Overlapping consensus statistics:
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::consensus_runner]   Overlapping bases examined: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::consensus_runner]   Bases agreeing: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::consensus_runner]   Bases disagreeing: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::consensus_runner]   Bases corrected: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::simplex] Consensus calling complete
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::simplex] Total MI groups processed: 2
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::simplex] Total groups processed by pipeline: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Consensus Calling Summary:
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Input reads: 5
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Consensus reads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Filtered reads: 2
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Pass rate: 20.00%
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Avg reads per consensus: 0.0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Avg depth: 0.0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Top rejection reasons:
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]     Insufficient reads to generate a consensus: 2
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::simplex] Wrote 1 consensus reads
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Calling simplex consensus completed: 0 in 0s (0.0 items/min)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::progress] Processed records 7 (complete)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::correct] Read 7; kept 7 and rejected 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::correct] Total templates processed: 7
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Marking duplicates ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Starting dedup
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Input: /tmp/.tmpLIfMQG/input.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Output: /tmp/.tmpLIfMQG/output.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Strategy: Identity
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Edits: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Remove duplicates: true
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Single-threaded mode
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Correcting UMIs completed: 7 in 0s (1,802 items/s)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Template-coordinate sorted
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::common] Queue memory limit: 768.0 MiB total (fixed)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Scheduler: BalancedChaseDrain
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Using pipeline with 1 threads
[INFO] [stdout] test test_correct_command::test_correct_command_basic ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Deduplication complete: 3 templates (1 unique, 2 duplicates, 66.67% duplicate rate)
[INFO] [stdout] test test_dedup_command::test_dedup_command_remove_duplicates ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Marking duplicates completed: 6 in 0s (2,478 items/s)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Correcting UMIs ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::correct] Loaded 1 UMI sequences of length 8
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::correct] Using single-threaded mode with template-level UMI correction
[INFO] [stdout] test test_correct_command::test_correct_command_with_rejects ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::progress] Processed records 5 (complete)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::correct] Read 5; kept 3 and rejected 2
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::correct] Total templates processed: 5
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Correcting UMIs completed: 5 in 0s (1,821 items/s)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Calling CODEC consensus ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Starting CODEC consensus calling
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Input: /tmp/.tmp8egLI9/input.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Output: /tmp/.tmp8egLI9/output.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Min reads: 3
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Error rate pre-UMI: Q45
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Error rate post-UMI: Q40
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Min duplex length: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Worker threads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Reader threads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Processing reads and calling consensus (streaming)...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::progress] Processed records 1 (complete)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Consensus calling complete
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Total records processed: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Consensus Calling Summary:
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Input reads: 8
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Consensus reads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Filtered reads: 2
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Pass rate: 12.50%
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Avg reads per consensus: 0.0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Avg depth: 0.0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Top rejection reasons:
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]     Insufficient reads to generate a consensus: 2
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Calling CODEC consensus completed: 1 in 0s (343 items/s)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Downsampling reads ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Starting Downsample
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Input: /tmp/.tmpsDrRYj/input.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Output: /tmp/.tmpsDrRYj/output.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Target fraction: 0.5
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Random seed: 42
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Rejected reads written successfully
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Header validation passed (template-coordinate order confirmed)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Processing reads...
[INFO] [stdout] test test_codec_command::test_codec_command_with_rejects ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::progress] Processed records 50 (complete)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] === Summary ===
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Total reads processed: 50
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Input families: 10
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Kept families: 5 (50.00%)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Kept reads: 25
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Rejected reads: 25
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Output BAM: /tmp/.tmpsDrRYj/output.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Downsampling reads completed: 50 in 0s (23,469 items/s)
[INFO] [stdout] test test_codec_command::test_codec_command_min_duplex_length ... ok
[INFO] [stdout] test test_downsample_command::test_downsample_basic ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::consensus_runner] Overlapping consensus statistics:
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::consensus_runner]   Overlapping bases examined: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::consensus_runner]   Bases agreeing: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::consensus_runner]   Bases disagreeing: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::consensus_runner]   Bases corrected: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::simplex] Consensus calling complete
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::simplex] Total MI groups processed: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::simplex] Total groups processed by pipeline: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Consensus Calling Summary:
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Input reads: 5
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Consensus reads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Filtered reads: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Pass rate: 20.00%
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Avg reads per consensus: 0.0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Avg depth: 0.0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::simplex] Wrote 1 consensus reads
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Calling simplex consensus completed: 0 in 0s (0.0 items/min)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::correct] Read 3; kept 3 and rejected 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::correct] Total templates processed: 3
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Correcting UMIs completed: 3 in 0s (19 items/s)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Calling duplex consensus ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex] Duplex
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex]   Input: /tmp/.tmpQcRqaD/input.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex]   Output: /tmp/.tmpQcRqaD/output.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex]   Min reads: [1]
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex]   Min base quality: 10
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex]   Output per-base tags: true
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex]   Worker threads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex]   Reader threads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex]   Trim reads: false
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex]   Max reads per strand: None
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex]   Cell tag: Some("CB")
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex]   Consensus call overlapping bases: true
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex] Overlapping consensus calling enabled
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex] Processing reads...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::progress] Processed records 2 (complete)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Downsampling reads ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Starting Downsample
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Input: /tmp/.tmpSeVyQS/input.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Output: /tmp/.tmpSeVyQS/output.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Target fraction: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::consensus_runner] Overlapping consensus statistics:
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::consensus_runner]   Overlapping bases examined: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::consensus_runner]   Bases agreeing: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::consensus_runner]   Bases disagreeing: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::consensus_runner]   Bases corrected: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Consensus Calling Summary:
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Input reads: 12
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Consensus reads: 2
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Filtered reads: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Pass rate: 16.67%
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Avg reads per consensus: 0.0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Avg depth: 0.0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Calling duplex consensus completed: 2 in 0s (412 items/s)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex] Done!
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Header validation passed (template-coordinate order confirmed)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Processing reads...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::progress] Processed records 15 (complete)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] === Summary ===
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Total reads processed: 15
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Input families: 3
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Kept families: 3 (100.00%)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Kept reads: 15
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Rejected reads: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Output BAM: /tmp/.tmpSeVyQS/output.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Downsampling reads completed: 15 in 0s (7,958 items/s)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Downsampling reads ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Starting Downsample
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Input: /tmp/.tmpKLvwnn/input.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Output: /tmp/.tmpKLvwnn/output.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Target fraction: 0.5
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Random seed: 42
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Marking duplicates ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Starting dedup
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Input: /tmp/.tmpAk52ZZ/input.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Output: /tmp/.tmpAk52ZZ/output.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Strategy: Identity
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Edits: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Remove duplicates: false
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Single-threaded mode
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Header validation passed (template-coordinate order confirmed)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Processing reads...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::progress] Processed records 15 (complete)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Wrote kept histogram to: /tmp/.tmpKLvwnn/hist_kept.txt
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Wrote rejected histogram to: /tmp/.tmpKLvwnn/hist_rejected.txt
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Template-coordinate sorted
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::common] Queue memory limit: 768.0 MiB total (fixed)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Scheduler: BalancedChaseDrain
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Using pipeline with 1 threads
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] === Summary ===
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Total reads processed: 15
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Input families: 5
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Kept families: 2 (40.00%)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Kept reads: 9
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Rejected reads: 6
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Output BAM: /tmp/.tmpKLvwnn/output.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Downsampling reads completed: 15 in 0s (1,949 items/s)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Correcting UMIs ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::correct] Loaded 1 UMI sequences of length 8
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::correct] Using single-threaded mode with template-level UMI correction
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::progress] Processed records 3 (complete)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::correct] Read 3; kept 3 and rejected 0
[INFO] [stdout] test test_downsample_command::test_downsample_keep_all ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::correct] Total templates processed: 3
[INFO] [stdout] test test_duplex_command::test_duplex_command_basic ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Deduplication complete: 3 templates (1 unique, 2 duplicates, 66.67% duplicate rate)
[INFO] [stdout] test test_bgzf_eof::test_correct_output_has_bgzf_eof ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Marking duplicates completed: 6 in 0s (547 items/s)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Correcting UMIs completed: 3 in 0s (673 items/s)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] Error: --fraction must be between 0.0 (exclusive) and 1.0 (inclusive), got 0[2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Wrote 2 rejected reads
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] CODEC consensus calling complete
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Total MI groups processed: 2
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Total groups processed by pipeline: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Consensus Calling Summary:
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Input reads: 8
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Consensus reads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Filtered reads: 2
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Pass rate: 12.50%
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Avg reads per consensus: 0.0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Avg depth: 0.0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Top rejection reasons:
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]     Insufficient reads to generate a consensus: 2
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::codec] Wrote 1 CODEC consensus reads
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Calling CODEC consensus completed: 0 in 0s (0.0 items/min)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stdout] test test_downsample_command::test_downsample_histograms ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] DuplexMetrics
[INFO] [stdout] test test_correct_command::test_correct_command_with_metrics ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics]   Input: /tmp/.tmpOjlLUe/input.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics]   Output prefix: /tmp/.tmpOjlLUe/output
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics]   Min AB reads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics]   Min BA reads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics]   Collect duplex UMI counts: false
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Computing duplex metrics ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Processing templates in single pass at 20 sampling fractions...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::progress] Processed records 18 (complete)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Processed 9 templates
[INFO] [stdout] test test_dedup_command::test_dedup_command_with_metrics ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Writing metrics...
[INFO] [stdout] test test_bgzf_eof::test_simplex_output_has_bgzf_eof ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Wrote family size metrics to /tmp/.tmpOjlLUe/output.family_sizes.txt
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Wrote duplex family size metrics to /tmp/.tmpOjlLUe/output.duplex_family_sizes.txt
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Wrote UMI metrics to /tmp/.tmpOjlLUe/output.umi_counts.txt
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Wrote yield metrics to /tmp/.tmpOjlLUe/output.duplex_yield_metrics.txt
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::clip] Total templates processed: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::clip] Templates with overlap clipping: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::clip] Templates with mate extension clipping: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::clip] Done!
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Clipping reads completed: 2 in 0s (10 items/s)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Marking duplicates ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Starting dedup
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Input: /tmp/.tmpmdRPbk/input.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Output: /tmp/.tmpmdRPbk/output.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Strategy: Identity
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Edits: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Remove duplicates: false
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Single-threaded mode
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Template-coordinate sorted
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Downsampling reads ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Starting Downsample
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Input: /tmp/.tmpEo2dAx/input.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Output: /tmp/.tmpEo2dAx/output.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Target fraction: 0.5
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Random seed: 42
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::group] Wrote output to /tmp/.tmp41dxpB/output.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::common] Queue memory limit: 768.0 MiB total (fixed)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Scheduler: BalancedChaseDrain
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] UMI Grouping Summary:
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Total records: 5
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Using pipeline with 1 threads
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Accepted records: 5
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Accept rate: 100.00%
[INFO] [stdout] test test_bgzf_eof::test_codec_rejects_has_bgzf_eof ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Unique molecules: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Total families: 1
[INFO] [stdout] test test_error_paths::test_consensus_sequence_empty_operations ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Avg reads/molecule: 5.0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Median reads/molecule: 5
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Header validation passed (template-coordinate order confirmed)
[INFO] [stdout] test test_bgzf_eof::test_clip_output_has_bgzf_eof ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Min reads/molecule: 5
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Max reads/molecule: 5
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Filtered out 0 records due to mapping issues.
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Filtered out 0 records that contained one or more Ns in their UMIs.
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Grouping reads by UMI completed: 5 in 0s (34 items/s)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::group] group completed successfully
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::group] Records processed by pipeline: 5
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] DuplexMetrics
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics]   Input: /tmp/.tmpxIRKNp/input.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics]   Output prefix: /tmp/.tmpxIRKNp/output_default
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics]   Min AB reads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics]   Min BA reads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics]   Collect duplex UMI counts: false
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Computing duplex metrics ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Processing templates in single pass at 20 sampling fractions...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Calling duplex consensus ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::progress] Processed records 18 (complete)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::dedup] Deduplication complete: 5 templates (2 unique, 3 duplicates, 60.00% duplicate rate)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Marking duplicates completed: 10 in 0s (582 items/s)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Processed 9 templates
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Writing metrics...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex] Duplex
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Wrote family size metrics to /tmp/.tmpxIRKNp/output_default.family_sizes.txt
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex]   Input: /tmp/.tmpLP0rTm/input.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Wrote duplex family size metrics to /tmp/.tmpxIRKNp/output_default.duplex_family_sizes.txt
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex]   Output: /tmp/.tmpLP0rTm/output.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Wrote UMI metrics to /tmp/.tmpxIRKNp/output_default.umi_counts.txt
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Wrote yield metrics to /tmp/.tmpxIRKNp/output_default.duplex_yield_metrics.txt
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex]   Min reads: [1]
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex]   Min base quality: 10
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Processing reads...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::progress] Processed records 50 (complete)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] === Summary ===
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Total reads processed: 50
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Input families: 10
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Kept families: 5 (50.00%)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Kept reads: 25
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Rejected reads: 25
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex]   Output per-base tags: true
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex]   Worker threads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex]   Reader threads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex]   Trim reads: false
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex]   Max reads per strand: None
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex]   Cell tag: Some("CB")
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex]   Consensus call overlapping bases: true
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex] Overlapping consensus calling enabled
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] DuplexMetrics
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics]   Input: /tmp/.tmpBmSZzF/input.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics]   Output prefix: /tmp/.tmpBmSZzF/output
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics]   Min AB reads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics]   Min BA reads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics]   Collect duplex UMI counts: false
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Computing duplex metrics ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex] Processing reads...
[INFO] [stdout] test test_dedup_command::test_dedup_command_basic ... ok
[INFO] [stdout] test test_bgzf_eof::test_piped_simplex_to_filter_has_bgzf_eof ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Output BAM: /tmp/.tmpEo2dAx/output.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Rejects BAM: /tmp/.tmpEo2dAx/rejects.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Downsampling reads completed: 50 in 0s (2,360 items/s)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Processing templates in single pass at 20 sampling fractions...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::progress] Processed records 2 (complete)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::progress] Processed records 18 (complete)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::consensus_runner] Overlapping consensus statistics:
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::consensus_runner]   Overlapping bases examined: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::consensus_runner]   Bases agreeing: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::consensus_runner]   Bases disagreeing: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Downsampling reads ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Starting Downsample
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::consensus_runner]   Bases corrected: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Consensus Calling Summary:
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Input reads: 12
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Consensus reads: 2
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] DuplexMetrics
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Filtered reads: 0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Pass rate: 16.67%
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics]   Input: /tmp/.tmp1vhHQf/input.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Avg reads per consensus: 0.0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics]   Output prefix: /tmp/.tmp1vhHQf/output
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging]   Avg depth: 0.0
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics]   Min AB reads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics]   Min BA reads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics]   Collect duplex UMI counts: false
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Computing duplex metrics ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Input: /tmp/.tmpNXUSzk/input.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Output: /tmp/.tmpNXUSzk/output1.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Target fraction: 0.3
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Random seed: 12345
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex] Statistics written to: /tmp/.tmpLP0rTm/stats.txt
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Header validation passed (template-coordinate order confirmed)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Processed 9 templates
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Writing metrics...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Calling duplex consensus completed: 2 in 0s (55 items/s)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex] Done!
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Wrote family size metrics to /tmp/.tmpBmSZzF/output.family_sizes.txt
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Wrote duplex family size metrics to /tmp/.tmpBmSZzF/output.duplex_family_sizes.txt
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Wrote UMI metrics to /tmp/.tmpBmSZzF/output.umi_counts.txt
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Wrote yield metrics to /tmp/.tmpBmSZzF/output.duplex_yield_metrics.txt
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Processing templates in single pass at 20 sampling fractions...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] DuplexMetrics
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] DuplexMetrics
[INFO] [stdout] test test_downsample_command::test_downsample_with_rejects ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics]   Input: /tmp/.tmpo9NT5W/input.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics]   Output prefix: /tmp/.tmpo9NT5W/output
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::progress] Processed records 18 (complete)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics]   Min AB reads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Processed 9 templates
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics]   Min BA reads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics]   Collect duplex UMI counts: true
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Computing duplex metrics ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Writing metrics...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Wrote family size metrics to /tmp/.tmp1vhHQf/output.family_sizes.txt
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Wrote duplex family size metrics to /tmp/.tmp1vhHQf/output.duplex_family_sizes.txt
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Wrote UMI metrics to /tmp/.tmp1vhHQf/output.umi_counts.txt
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Processing templates in single pass at 20 sampling fractions...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Wrote yield metrics to /tmp/.tmp1vhHQf/output.duplex_yield_metrics.txt
[INFO] [stdout] test test_duplex_command::test_duplex_command_with_stats ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Extracting UMIs ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::progress] Processed records 18 (complete)
[INFO] [stdout] test test_bgzf_eof::test_group_output_has_bgzf_eof ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Processed 9 templates
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Writing metrics...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Wrote family size metrics to /tmp/.tmpo9NT5W/output.family_sizes.txt
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Wrote duplex family size metrics to /tmp/.tmpo9NT5W/output.duplex_family_sizes.txt
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics]   Input: /tmp/.tmpzEAXSL/input.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics]   Output prefix: /tmp/.tmpzEAXSL/output
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics]   Min AB reads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics]   Min BA reads: 1
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics]   Collect duplex UMI counts: false
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Computing duplex metrics ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Processing reads...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Processing templates in single pass at 20 sampling fractions...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::progress] Processed records 60 (complete)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] === Summary ===
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Total reads processed: 60
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Input families: 20
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Kept families: 5 (25.00%)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Kept reads: 15
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Rejected reads: 45
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Output BAM: /tmp/.tmpNXUSzk/output1.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Downsampling reads completed: 60 in 0s (2,065 items/s)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Wrote UMI metrics to /tmp/.tmpo9NT5W/output.umi_counts.txt
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Wrote duplex UMI metrics to /tmp/.tmpo9NT5W/output.duplex_umi_counts.txt
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Wrote yield metrics to /tmp/.tmpo9NT5W/output.duplex_yield_metrics.txt
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Extracting UMIs ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::common] Queue memory limit: 768.0 MiB total (fixed)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Extracting UMIs ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::progress] Processed records 18 (complete)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Processed 9 templates
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Writing metrics...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Downsampling reads ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Starting Downsample
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Input: /tmp/.tmpNXUSzk/input.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Output: /tmp/.tmpNXUSzk/output2.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Target fraction: 0.3
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Random seed: 12345
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Wrote family size metrics to /tmp/.tmpzEAXSL/output.family_sizes.txt
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Header validation passed (template-coordinate order confirmed)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Wrote duplex family size metrics to /tmp/.tmpzEAXSL/output.duplex_family_sizes.txt
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::progress] Processed records 6 (complete)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Processing reads...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Wrote UMI metrics to /tmp/.tmpzEAXSL/output.umi_counts.txt
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::duplex_metrics] Wrote yield metrics to /tmp/.tmpzEAXSL/output.duplex_yield_metrics.txt
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::progress] Processed records 60 (complete)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] === Summary ===
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Total reads processed: 60
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Input families: 20
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Kept families: 5 (25.00%)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Kept reads: 15
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Rejected reads: 45
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::downsample] Output BAM: /tmp/.tmpNXUSzk/output2.bam
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Downsampling reads completed: 60 in 0s (25,987 items/s)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Extracting UMIs ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::unified_pipeline::fastq] Pipeline counters: batches_read=2, batches_grouped=1, total_templates_pushed=3, total_records_serialized=6, templates_written=6
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::extract] Wrote 6 records via 7-step pipeline
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Extracting UMIs completed: 6 in 0s (42 items/s)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Extracting UMIs completed: 6 in 0s (67 items/s)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::common] Queue memory limit: 3.0 GiB total (768 MB/thread × 4 threads)
[INFO] [stdout] test test_downsample_command::test_downsample_deterministic ... ok
[INFO] [stdout] test test_extract_command::test_extract_bgzf_single_threaded ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::common] Queue memory limit: 3.0 GiB total (768 MB/thread × 4 threads)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Extracting UMIs ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::unified_pipeline::fastq] Pipeline counters: batches_read=2, batches_grouped=1, total_templates_pushed=3, total_records_serialized=6, templates_written=6
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::extract] Wrote 6 records via 7-step pipeline
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Extracting UMIs completed: 6 in 0s (30 items/s)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Extracting UMIs ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Extracting UMIs ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::unified_pipeline::fastq] Pipeline counters: batches_read=2, batches_grouped=1, total_templates_pushed=3, total_records_serialized=6, templates_written=6
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::extract] Wrote 6 records via 7-step pipeline
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Extracting UMIs completed: 6 in 0s (29 items/s)
[INFO] [stdout] test test_extract_command::test_extract_bgzf_threads_mode ... ok
[INFO] [stderr] 
[INFO] [stderr] 
[INFO] [stderr] Stack backtrace:
[INFO] [stderr]    0: <anyhow::Error>::msg::<alloc::string::String>
[INFO] [stderr]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/backtrace.rs:10:14
[INFO] [stderr]    1: <fgumi::commands::downsample::Downsample as fgumi::commands::command::Command>::execute
[INFO] [stderr]              at ./src/commands/downsample.rs:102:13
[INFO] [stderr]    2: <fgumi::Subcommand as fgumi::commands::command::Command>::execute
[INFO] [stderr]              at ./src/main.rs:67:1
[INFO] [stderr]    3: fgumi::main
[INFO] [stderr]              at ./src/main.rs:156:21
[INFO] [stderr]    4: <fn() -> core::result::Result<(), anyhow::Error> as core::ops::function::FnOnce<()>>::call_once
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:250:5
[INFO] [stderr]    5: std::sys::backtrace::__rust_begin_short_backtrace::<fn() -> core::result::Result<(), anyhow::Error>, core::result::Result<(), anyhow::Error>>
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:166:18
[INFO] [stderr]    6: std::rt::lang_start::<core::result::Result<(), anyhow::Error>>::{closure#0}
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/rt.rs:206:18
[INFO] [stderr]    7: <&dyn core::ops::function::Fn<(), Output = i32> + core::panic::unwind_safe::RefUnwindSafe + core::marker::Sync as core::ops::function::FnOnce<()>>::call_once
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:287:21
[INFO] [stderr]    8: std::panicking::catch_unwind::do_call::<&dyn core::ops::function::Fn<(), Output = i32> + core::panic::unwind_safe::RefUnwindSafe + core::marker::Sync, i32>
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:581:40
[INFO] [stderr]    9: std::panicking::catch_unwind::<i32, &dyn core::ops::function::Fn<(), Output = i32> + core::panic::unwind_safe::RefUnwindSafe + core::marker::Sync>
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:544:19
[INFO] [stderr]   10: std::panic::catch_unwind::<&dyn core::ops::function::Fn<(), Output = i32> + core::panic::unwind_safe::RefUnwindSafe + core::marker::Sync, i32>
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panic.rs:359:14
[INFO] [stderr]   11: std::rt::lang_start_internal::{closure#0}
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/rt.rs:175:24
[INFO] [stderr]   12: std::panicking::catch_unwind::do_call::<std::rt::lang_start_internal::{closure#0}, isize>
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:581:40
[INFO] [stderr]   13: std::panicking::catch_unwind::<isize, std::rt::lang_start_internal::{closure#0}>
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:544:19
[INFO] [stderr]   14: std::panic::catch_unwind::<std::rt::lang_start_internal::{closure#0}, isize>
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panic.rs:359:14
[INFO] [stderr]   15: std::rt::lang_start_internal
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/rt.rs:171:5
[INFO] [stderr]   16: std::rt::lang_start::<core::result::Result<(), anyhow::Error>>
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/rt.rs:205:5
[INFO] [stderr]   17: main
[INFO] [stderr]   18: <unknown>
[INFO] [stderr]   19: __libc_start_main
[INFO] [stderr]   20: _start
[INFO] [stdout] test test_extract_command::test_extract_bgzf_multithreaded ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::common] Queue memory limit: 3.0 GiB total (768 MB/thread × 4 threads)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::common] Queue memory limit: 3.0 GiB total (768 MB/thread × 4 threads)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Extracting UMIs ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Extracting UMIs ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::common] Queue memory limit: 3.0 GiB total (768 MB/thread × 4 threads)
[INFO] [stderr] Error: --fraction must be between 0.0 (exclusive) and 1.0 (inclusive), got 1.5[2026-03-30T01:22:14Z INFO  fgumi_lib::unified_pipeline::fastq] Pipeline counters: batches_read=2, batches_grouped=1, total_templates_pushed=3, total_records_serialized=6, templates_written=6
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::extract] Wrote 6 records via 7-step pipeline
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Extracting UMIs completed: 6 in 0s (22 items/s)
[INFO] [stdout] test test_extract_command::test_extract_gzip_multithreaded ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::progress] Processed records 2 (complete)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Extracting UMIs completed: 2 in 0s (5 items/s)
[INFO] [stdout] test test_extract_command::test_extract_bgzf_verifies_umi_extraction ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::unified_pipeline::fastq] Pipeline counters: batches_read=2, batches_grouped=1, total_templates_pushed=3, total_records_serialized=6, templates_written=6
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi::commands::extract] Wrote 6 records via 7-step pipeline
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Extracting UMIs completed: 6 in 0s (15 items/s)
[INFO] [stdout] test test_extract_command::test_bgzf_sync_multithreaded_matches_single_threaded ... ok
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Extracting UMIs ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Extracting UMIs ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::progress] Processed records 6 (complete)
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Extracting UMIs ...
[INFO] [stderr] [2026-03-30T01:22:14Z INFO  fgumi_lib::logging] Extracting UMIs completed: 6 in 0s (29 items/s)
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::common] Queue memory limit: 3.0 GiB total (768 MB/thread × 4 threads)
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::unified_pipeline::fastq] Pipeline counters: batches_read=2, batches_grouped=1, total_templates_pushed=3, total_records_serialized=6, templates_written=6
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::extract] Wrote 6 records via 7-step pipeline
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Extracting UMIs completed: 6 in 0s (18 items/s)
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::common] Queue memory limit: 3.0 GiB total (768 MB/thread × 4 threads)
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::extract] Detected BGZF-compressed FASTQ, using 4 decompression threads
[INFO] [stdout] test test_extract_command::test_extract_gzip_single_threaded ... ok
[INFO] [stdout] test test_extract_command::test_extract_gzip_threads_mode ... ok
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Extracting UMIs ...
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::common] Queue memory limit: 3.0 GiB total (768 MB/thread × 4 threads)
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::unified_pipeline::fastq] Pipeline counters: batches_read=2, batches_grouped=1, total_templates_pushed=3, total_records_serialized=6, templates_written=6
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::extract] Wrote 6 records via 7-step pipeline
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Extracting UMIs completed: 6 in 0s (38 items/s)
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::unified_pipeline::fastq] Pipeline counters: batches_read=2, batches_grouped=1, total_templates_pushed=1, total_records_serialized=2, templates_written=2
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::extract] Wrote 2 records via 7-step pipeline
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Extracting UMIs completed: 2 in 0s (10 items/s)
[INFO] [stdout] test test_extract_command::test_extract_mixed_gzip_and_bgzf ... ok
[INFO] [stdout] test test_extract_command::test_extract_multithreaded_custom_options ... ok
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::progress] Processed records 2 (complete)
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Extracting UMIs completed: 2 in 0s (7 items/s)
[INFO] [stdout] test test_extract_command::test_extract_gzip_verifies_umi_extraction ... ok
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Extracting UMIs ...
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Extracting UMIs ...
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::common] Queue memory limit: 3.0 GiB total (768 MB/thread × 4 threads)
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Extracting UMIs ...
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::unified_pipeline::fastq] Pipeline counters: batches_read=2, batches_grouped=1, total_templates_pushed=3, total_records_serialized=6, templates_written=6
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::extract] Wrote 6 records via 7-step pipeline
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Extracting UMIs completed: 6 in 0s (38 items/s)
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::common] Queue memory limit: 3.0 GiB total (768 MB/thread × 4 threads)
[INFO] [stderr] 
[INFO] [stderr] 
[INFO] [stderr] Stack backtrace:
[INFO] [stderr]    0: <anyhow::Error>::msg::<alloc::string::String>
[INFO] [stderr]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/backtrace.rs:10:14
[INFO] [stderr]    1: <fgumi::commands::downsample::Downsample as fgumi::commands::command::Command>::execute
[INFO] [stderr]              at ./src/commands/downsample.rs:102:13
[INFO] [stderr]    2: <fgumi::Subcommand as fgumi::commands::command::Command>::execute
[INFO] [stderr]              at ./src/main.rs:67:1
[INFO] [stderr]    3: fgumi::main
[INFO] [stderr]              at ./src/main.rs:156:21
[INFO] [stderr]    4: <fn() -> core::result::Result<(), anyhow::Error> as core::ops::function::FnOnce<()>>::call_once
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:250:5
[INFO] [stderr]    5: std::sys::backtrace::__rust_begin_short_backtrace::<fn() -> core::result::Result<(), anyhow::Error>, core::result::Result<(), anyhow::Error>>
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:166:18
[INFO] [stderr]    6: std::rt::lang_start::<core::result::Result<(), anyhow::Error>>::{closure#0}
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/rt.rs:206:18
[INFO] [stderr]    7: <&dyn core::ops::function::Fn<(), Output = i32> + core::panic::unwind_safe::RefUnwindSafe + core::marker::Sync as core::ops::function::FnOnce<()>>::call_once
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:287:21
[INFO] [stderr]    8: std::panicking::catch_unwind::do_call::<&dyn core::ops::function::Fn<(), Output = i32> + core::panic::unwind_safe::RefUnwindSafe + core::marker::Sync, i32>
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:581:40
[INFO] [stderr]    9: std::panicking::catch_unwind::<i32, &dyn core::ops::function::Fn<(), Output = i32> + core::panic::unwind_safe::RefUnwindSafe + core::marker::Sync>
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:544:19
[INFO] [stderr]   10: std::panic::catch_unwind::<&dyn core::ops::function::Fn<(), Output = i32> + core::panic::unwind_safe::RefUnwindSafe + core::marker::Sync, i32>
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panic.rs:359:14
[INFO] [stderr]   11: std::rt::lang_start_internal::{closure#0}
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/rt.rs:175:24
[INFO] [stderr]   12: std::panicking::catch_unwind::do_call::<std::rt::lang_start_internal::{closure#0}, isize>
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:581:40
[INFO] [stderr]   13: std::panicking::catch_unwind::<isize, std::rt::lang_start_internal::{closure#0}>
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:544:19
[INFO] [stderr]   14: std::panic::catch_unwind::<std::rt::lang_start_internal::{closure#0}, isize>
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panic.rs:359:14
[INFO] [stderr]   15: std::rt::lang_start_internal
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/rt.rs:171:5
[INFO] [stderr]   16: std::rt::lang_start::<core::result::Result<(), anyhow::Error>>
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/rt.rs:205:5
[INFO] [stderr]   17: main
[INFO] [stderr]   18: <unknown>
[INFO] [stderr]   19: __libc_start_main
[INFO] [stderr]   20: _start
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::unified_pipeline::fastq] Pipeline counters: batches_read=2, batches_grouped=1, total_templates_pushed=4, total_records_serialized=8, templates_written=8
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::extract] Wrote 8 records via 7-step pipeline
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Extracting UMIs completed: 8 in 0s (65 items/s)
[INFO] [stdout] test test_extract_command::test_variable_length_reads_bgzf ... ok
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Extracting UMIs ...
[INFO] [stdout] test test_downsample_command::test_downsample_invalid_fraction ... ok
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::unified_pipeline::fastq] Pipeline counters: batches_read=2, batches_grouped=1, total_templates_pushed=4, total_records_serialized=8, templates_written=8
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::extract] Wrote 8 records via 7-step pipeline
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Extracting UMIs completed: 8 in 0s (43 items/s)
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::common] Queue memory limit: 3.0 GiB total (768 MB/thread × 4 threads)
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::progress] Processed records 6 (complete)
[INFO] [stdout] test test_extract_command::test_variable_length_reads_gzip ... ok
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Extracting UMIs completed: 6 in 0s (23 items/s)
[INFO] [stdout] test test_fastq_command::test_fastq_exclude_flags ... ok
[INFO] [stdout] test test_extract_command::test_extract_plain_and_compressed ... ok
[INFO] [stdout] test test_fastq_command::test_fastq_no_suffix ... ok
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Extracting UMIs ...
[INFO] [stdout] test test_fastq_command::test_fastq_quality_encoding ... ok
[INFO] [stdout] test helpers::assertions::tests::test_assert_mi_tag_mismatch - should panic ... ok
[INFO] [stdout] test test_fastq_command::test_fastq_multithreaded ... ok
[INFO] [stderr] [2026-03-30T01:22:15Z WARN  fgumi::commands::duplex_metrics] R or required packages (ggplot2, scales) not available. Skipping PDF generation.
[INFO] [stderr] [2026-03-30T01:22:15Z WARN  fgumi::commands::duplex_metrics] To enable PDF generation, install R and required packages:
[INFO] [stderr] [2026-03-30T01:22:15Z WARN  fgumi::commands::duplex_metrics]   install.packages(c("ggplot2", "scales"))
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::duplex_metrics] Done!
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Computing duplex metrics completed: 9 in 1s (6 items/s)
[INFO] [stdout] test test_error_paths::test_filter_config_for_duplex_asymmetric_invalid_error_rate - should panic ... ok
[INFO] [stdout] test test_error_paths::test_filter_config_for_duplex_invalid_strand_greater_than_duplex - should panic ... ok
[INFO] [stdout] test test_error_paths::test_consensus_sequence_padded_shorter_panics - should panic ... ok
[INFO] [stdout] test test_duplex_metrics_command::test_duplex_metrics_command_creates_output_files ... ok
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Filtering consensus reads ...
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Starting Filter
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Input: /tmp/.tmpHNR9CI/input.bam
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Output: /tmp/.tmpHNR9CI/output.bam
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Reference: <none> (tag regeneration disabled)
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Min reads: [3]
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Max read error rate: [0.025]
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Max base error rate: [0.1]
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Max no-call fraction: 0.2
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Filtering consensus reads ...
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Starting Filter
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Input: /tmp/.tmpufBl9q/input.bam
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Output: /tmp/.tmpufBl9q/output.bam
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Reference: /tmp/.tmpufBl9q/ref.fa
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Min reads: [3]
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Max read error rate: [0.025]
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::common] Queue memory limit: 768.0 MiB total (fixed)
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Max base error rate: [0.1]
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Max no-call fraction: 0.2
[INFO] [stdout] test test_filter_command::test_filter_command_no_ref_with_rejects ... ok
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Processed 2 reads; kept 1 and rejected 1
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Wrote 1 rejected records to rejects file
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Total bases masked: 8
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Filtering consensus reads completed: 2 in 0s (711 items/s)
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Filtering consensus reads ...
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Starting Filter
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Input: /tmp/.tmpRTUNi1/input.bam
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Output: /tmp/.tmpRTUNi1/output.bam
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Reference: /tmp/.tmpRTUNi1/ref.fa
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Min reads: [1]
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Max read error rate: [0.025]
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Max base error rate: [0.1]
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Max no-call fraction: 1
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::common] Queue memory limit: 768.0 MiB total (fixed)
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Loading reference genome into memory...
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Reference loaded in 0.0s
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Processed 2 reads; kept 1 and rejected 1
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Wrote 1 rejected records to rejects file
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Total bases masked: 8
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Filtering consensus reads completed: 2 in 0s (335 items/s)
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::common] Queue memory limit: 768.0 MiB total (fixed)
[INFO] [stdout] test test_filter_command::test_filter_command_rejects_low_depth ... ok
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Loading reference genome into memory...
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Reference loaded in 0.0s
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Processed 2 reads; kept 2 and rejected 0
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::common] Queue memory limit: 768.0 MiB total (fixed)
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::unified_pipeline::fastq] Pipeline counters: batches_read=2, batches_grouped=1, total_templates_pushed=3, total_records_serialized=6, templates_written=6
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::extract] Wrote 6 records via 7-step pipeline
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Extracting UMIs completed: 6 in 0s (25 items/s)
[INFO] [stdout] test test_fastq_command::test_fastq_hex_flags ... ok
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Total bases masked: 0
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Filtering consensus reads completed: 2 in 0s (79 items/s)
[INFO] [stdout] test test_filter_command::test_filter_command_basic ... ok
[INFO] [stdout] test test_fastq_command::test_fastq_reverse_complement ... ok
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Extracting UMIs ...
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Filtering consensus reads ...
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Starting Filter
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Input: /tmp/.tmpDdVW0H/input.bam
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Output: /tmp/.tmpDdVW0H/output.bam
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Reference: <none> (tag regeneration disabled)
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Min reads: [1]
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Max read error rate: [0.025]
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Max base error rate: [0.1]
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Max no-call fraction: 1
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::common] Queue memory limit: 768.0 MiB total (fixed)
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Processed 2 reads; kept 2 and rejected 0
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Grouping reads by UMI ...
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::group] Starting group
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::group] Input: /tmp/.tmpYEzljQ/input.bam
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::group] Output: /tmp/.tmpYEzljQ/output.bam
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::group] Strategy: Identity
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::group] Edits: 0
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::group] Single-threaded mode
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::group] Reading input BAM
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::group] Input is template-coordinate sorted
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::group] Using single-threaded mode
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Filtering consensus reads ...
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Starting Filter
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Input: /tmp/.tmp06OSH9/input.bam
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Output: /tmp/.tmp06OSH9/output.bam
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Reference: /tmp/.tmp06OSH9/ref.fa
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Min reads: [1]
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Max read error rate: [0.025]
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Max base error rate: [0.1]
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Max no-call fraction: 0.2
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::common] Queue memory limit: 768.0 MiB total (fixed)
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Loading reference genome into memory...
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Reference loaded in 0.0s
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Total bases masked: 0
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Filtering consensus reads completed: 2 in 0s (62 items/s)
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::unified_pipeline::fastq] Pipeline counters: batches_read=2, batches_grouped=1, total_templates_pushed=100, total_records_serialized=200, templates_written=200
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::extract] Wrote 200 records via 7-step pipeline
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Extracting UMIs completed: 200 in 0s (1,080 items/s)
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::progress] Processed records 8 (complete)
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::group] Wrote output to /tmp/.tmpYEzljQ/output.bam
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] UMI Grouping Summary:
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging]   Total records: 8
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging]   Accepted records: 5
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging]   Accept rate: 62.50%
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging]   Unique molecules: 1
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging]   Total families: 1
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging]   Avg reads/molecule: 5.0
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging]   Median reads/molecule: 5
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging]   Min reads/molecule: 5
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging]   Max reads/molecule: 5
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Filtered out 0 records due to mapping issues.
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Filtered out 3 records that contained one or more Ns in their UMIs.
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::group] Wrote grouping metrics to /tmp/.tmpYEzljQ/metrics.txt
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Grouping reads by UMI completed: 5 in 0s (161 items/s)
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::group] group completed successfully
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::common] Queue memory limit: 3.0 GiB total (768 MB/thread × 4 threads)
[INFO] [stdout] test test_filter_command::test_filter_command_no_ref_unmapped_reads ... ok
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stdout] test test_group_command::test_group_command_rejects_n_bases_in_umi ... ok
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Grouping reads by UMI ...
[INFO] [stdout] test test_fastq_command::test_fastq_basic ... ok
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::group] Starting group
[INFO] [stdout] test test_group_command::test_group_command_writes_new_metrics ... ok
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::group] Input: /tmp/.tmp0aRru6/input.bam
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::group] Output: /tmp/.tmp0aRru6/output.bam
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::group] Strategy: Identity
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::group] Edits: 0
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::group] Single-threaded mode
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::group] Reading input BAM
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::group] Input is template-coordinate sorted
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::group] Using single-threaded mode
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::progress] Processed records 30 (complete)
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::group] Wrote output to /tmp/.tmp0aRru6/output.bam
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] UMI Grouping Summary:
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging]   Total records: 30
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging]   Accepted records: 30
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging]   Accept rate: 100.00%
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging]   Unique molecules: 3
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging]   Total families: 3
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging]   Avg reads/molecule: 10.0
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging]   Median reads/molecule: 5
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging]   Min reads/molecule: 5
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging]   Max reads/molecule: 15
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Filtered out 0 records due to mapping issues.
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Filtered out 0 records that contained one or more Ns in their UMIs.
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::group] Wrote grouping metrics to /tmp/.tmp0aRru6/metrics.txt
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Grouping reads by UMI completed: 30 in 0s (2,375 items/s)
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::group] group completed successfully
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Processed 1 reads; kept 0 and rejected 1
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::filter] Total bases masked: 8
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Filtering consensus reads completed: 1 in 0s (16 items/s)
[INFO] [stdout] test test_filter_command::test_filter_command_with_stats ... ok
[INFO] [stdout] test test_filter_command::test_filter_command_no_ref_mapped_reads_fails ... ok
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Extracting UMIs ...
[INFO] [stdout] test test_pipeline_concurrency::proptest_tests::proptest_ordered_queue_never_drops_items ... ok
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::unified_pipeline::fastq] Pipeline counters: batches_read=2, batches_grouped=1, total_templates_pushed=3, total_records_serialized=6, templates_written=6
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::extract] Wrote 6 records via 7-step pipeline
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi_lib::logging] Extracting UMIs completed: 6 in 0s (32 items/s)
[INFO] [stdout] test test_extract_command::test_parallel_parse_determinism ... ok
[INFO] [stdout] test test_pipeline_concurrency::test_error_propagation_grouper_multithreaded ... ok
[INFO] [stdout] test test_pipeline_concurrency::test_error_propagation_process_fn_multithreaded ... ok
[INFO] [stderr] [2026-03-30T01:22:15Z INFO  fgumi::commands::common] Queue memory limit: 1.5 GiB total (768 MB/thread × 2 threads)
[INFO] [stdout] test test_pipeline_concurrency::test_reorder_buffer_concurrent_insert_pop ... ok
[INFO] [stdout] test test_pipeline_concurrency::test_bam_pipeline_output_order_matches_input ... ok
[INFO] [stdout] test test_pipeline_concurrency::test_error_propagation_serialize_fn_multithreaded ... ok
[INFO] [stdout] test test_pipeline_concurrency::test_pipeline_held_items_flushed_on_shutdown ... ok
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::unified_pipeline::fastq] Pipeline counters: batches_read=2, batches_grouped=1, total_templates_pushed=100, total_records_serialized=200, templates_written=200
[INFO] [stdout] test test_pipeline_concurrency::test_error_does_not_cause_hang ... ok
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::extract] Wrote 200 records via 7-step pipeline
[INFO] [stdout] test test_pipeline_concurrency::test_bam_pipeline_no_dropped_records_under_backpressure ... ok
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Extracting UMIs completed: 200 in 0s (957 items/s)
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stdout] test test_review_command::test_review_missing_required_args ... ok
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Calling simplex consensus ...
[INFO] [stdout] test test_simplex_command::test_simplex_command_with_rejects ... ok
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Starting Simplex
[INFO] [stdout] test test_simplex_pipeline::test_adjacency_assigner_with_error_correction ... ok
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Input: /tmp/.tmpm4iGWU/input.bam
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Output: /tmp/.tmpm4iGWU/output.bam
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Min reads: 2
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Error rate pre-UMI: Q45
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Error rate post-UMI: Q40
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Overlapping consensus calling enabled
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Processing reads and calling consensus (streaming)...
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::progress] Processed records 1 (complete)
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::consensus_runner] Overlapping consensus statistics:
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::consensus_runner]   Overlapping bases examined: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::consensus_runner]   Bases agreeing: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::consensus_runner]   Bases disagreeing: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::consensus_runner]   Bases corrected: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Consensus calling complete
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Total records processed: 1
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Consensus Calling Summary:
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Input reads: 6
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Consensus reads: 1
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Filtered reads: 1
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Pass rate: 16.67%
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Avg reads per consensus: 0.0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Avg depth: 0.0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Top rejection reasons:
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]     Insufficient reads to generate a consensus: 1
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Calling simplex consensus completed: 1 in 0s (162 items/s)
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Rejected reads written successfully
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Extracting UMIs ...
[INFO] [stderr] [2026-03-30T01:22:16Z WARN  fgumi::commands::duplex_metrics] R or required packages (ggplot2, scales) not available. Skipping PDF generation.
[INFO] [stderr] [2026-03-30T01:22:16Z WARN  fgumi::commands::duplex_metrics] To enable PDF generation, install R and required packages:
[INFO] [stderr] [2026-03-30T01:22:16Z WARN  fgumi::commands::duplex_metrics]   install.packages(c("ggplot2", "scales"))
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::duplex_metrics] Done!
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Computing duplex metrics completed: 9 in 1s (4 items/s)
[INFO] [stdout] test test_simplex_pipeline::test_adjacency_respects_count_gradient ... ok
[INFO] [stdout] test test_simplex_pipeline::test_identity_assigner_basic_workflow ... ok
[INFO] [stdout] test test_simplex_pipeline::test_paired_end_umi_workflow ... ok
[INFO] [stdout] test test_simulate_sort::test_grouped_reads_duplex_matches_samtools ... ignored, requires samtools and fgumi with simulate feature
[INFO] [stdout] test test_simulate_sort::test_grouped_reads_simplex_matches_samtools ... ignored, requires samtools and fgumi with simulate feature
[INFO] [stdout] test test_simulate_sort::test_large_dataset_matches_samtools ... ignored, requires samtools and fgumi with simulate feature; slow
[INFO] [stdout] test test_simulate_sort::test_mapped_reads_matches_samtools ... ignored, requires samtools and fgumi with simulate feature
[INFO] [stdout] test test_sort_write_index::test_sort_fast_write_index ... ignored, requires samtools
[INFO] [stdout] test test_sort_write_index::test_sort_standard_write_index ... ignored, requires samtools
[INFO] [stdout] test test_sort_write_index::test_sort_write_index_multithreaded ... ignored, requires samtools
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Calling simplex consensus ...
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Starting Simplex
[INFO] [stdout] test test_review_command::test_review_basic_execution ... ok
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::common] Queue memory limit: 3.0 GiB total (768 MB/thread × 4 threads)
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::duplex_metrics] DuplexMetrics
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::duplex_metrics]   Input: /tmp/.tmpxIRKNp/input.bam
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::duplex_metrics]   Output prefix: /tmp/.tmpxIRKNp/output_strict
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::duplex_metrics]   Min AB reads: 2
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::duplex_metrics]   Min BA reads: 2
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::duplex_metrics]   Collect duplex UMI counts: false
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Computing duplex metrics ...
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::duplex_metrics] Processing templates in single pass at 20 sampling fractions...
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::progress] Processed records 18 (complete)
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::duplex_metrics] Processed 9 templates
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::duplex_metrics] Writing metrics...
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::duplex_metrics] Wrote family size metrics to /tmp/.tmpxIRKNp/output_strict.family_sizes.txt
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::duplex_metrics] Wrote duplex family size metrics to /tmp/.tmpxIRKNp/output_strict.duplex_family_sizes.txt
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::duplex_metrics] Wrote UMI metrics to /tmp/.tmpxIRKNp/output_strict.umi_counts.txt
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::duplex_metrics] Wrote yield metrics to /tmp/.tmpxIRKNp/output_strict.duplex_yield_metrics.txt
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Input: /tmp/.tmpaZGCA1/input.bam
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Output: /tmp/.tmpaZGCA1/output.bam
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Min reads: 2
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Error rate pre-UMI: Q45
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Error rate post-UMI: Q40
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Overlapping consensus calling enabled
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Processing reads and calling consensus (streaming)...
[INFO] [stdout] test test_pipeline_concurrency::test_bam_pipeline_multithreaded_determinism ... ok
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Grouping reads by UMI ...
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Starting group
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Input: /dev/stdin
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Output: /tmp/.tmpRabLoG/output.bam
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Strategy: Identity
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Edits: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Using 2 threads
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Reading input BAM
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Input is template-coordinate sorted
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::common] Queue memory limit: 1.5 GiB total (768 MB/thread × 2 threads)
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Scheduler: BalancedChaseDrain
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::progress] Processed records 2 (complete)
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::consensus_runner] Overlapping consensus statistics:
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::consensus_runner]   Overlapping bases examined: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::consensus_runner]   Bases agreeing: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::consensus_runner]   Bases disagreeing: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::consensus_runner]   Bases corrected: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Consensus calling complete
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Total records processed: 2
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Consensus Calling Summary:
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Input reads: 10
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Calling simplex consensus ...
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Starting Simplex
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Input: /tmp/.tmpMgvQ6l/input.bam
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Output: /tmp/.tmpMgvQ6l/output.bam
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Min reads: 2
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Error rate pre-UMI: Q45
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Consensus reads: 2
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Filtered reads: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Pass rate: 20.00%
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Avg reads per consensus: 0.0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Avg depth: 0.0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Error rate post-UMI: Q40
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Overlapping consensus calling enabled
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Calling simplex consensus completed: 2 in 0s (32 items/s)
[INFO] [stdout] test test_simplex_command::test_simplex_command_basic_consensus ... ok
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Grouping reads by UMI ...
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Starting group
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Input: /tmp/.tmpwMSVmm/input.bam
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Output: /tmp/.tmpwMSVmm/output_file.bam
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Strategy: Identity
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Edits: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Using 2 threads
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Reading input BAM
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Input is template-coordinate sorted
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::common] Queue memory limit: 1.5 GiB total (768 MB/thread × 2 threads)
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Scheduler: BalancedChaseDrain
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Processing reads and calling consensus (streaming)...
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Calling simplex consensus ...
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Starting Simplex
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Input: /tmp/.tmpcdqr0x/input.bam
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Output: /tmp/.tmpcdqr0x/output.bam
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Min reads: 1
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Error rate pre-UMI: Q45
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Error rate post-UMI: Q40
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Overlapping consensus calling enabled
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Processing reads and calling consensus (streaming)...
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::unified_pipeline::fastq] Pipeline counters: batches_read=2, batches_grouped=1, total_templates_pushed=100, total_records_serialized=200, templates_written=200
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::extract] Wrote 200 records via 7-step pipeline
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Extracting UMIs completed: 200 in 0s (1,544 items/s)
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::progress] Processed records 1 (complete)
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::consensus_runner] Overlapping consensus statistics:
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::consensus_runner]   Overlapping bases examined: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::consensus_runner]   Bases agreeing: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::consensus_runner]   Bases disagreeing: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::consensus_runner]   Bases corrected: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Consensus calling complete
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Total records processed: 1
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Consensus Calling Summary:
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Input reads: 5
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Consensus reads: 1
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Filtered reads: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Pass rate: 20.00%
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::progress] Processed records 1 (complete)
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::consensus_runner] Overlapping consensus statistics:
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::consensus_runner]   Overlapping bases examined: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Calling simplex consensus ...
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::consensus_runner]   Bases agreeing: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Starting Simplex
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Input: /tmp/.tmprg1mzS/input.bam
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Output: /tmp/.tmprg1mzS/output_file.bam
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Min reads: 1
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Error rate pre-UMI: Q45
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Error rate post-UMI: Q40
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::consensus_runner]   Bases disagreeing: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::consensus_runner]   Bases corrected: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Consensus calling complete
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Total records processed: 1
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Consensus Calling Summary:
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Input reads: 5
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Overlapping consensus calling enabled
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Consensus reads: 1
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Filtered reads: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Processing reads and calling consensus (streaming)...
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Pass rate: 20.00%
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Avg reads per consensus: 0.0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Avg depth: 0.0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::common] Queue memory limit: 1.5 GiB total (768 MB/thread × 2 threads)
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Wrote statistics to: /tmp/.tmpcdqr0x/stats.txt
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Calling simplex consensus completed: 1 in 0s (25 items/s)
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Avg reads per consensus: 0.0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Avg depth: 0.0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Calling simplex consensus completed: 1 in 0s (11 items/s)
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Wrote output to /tmp/.tmpRabLoG/output.bam
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] UMI Grouping Summary:
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Total records: 8
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Accepted records: 8
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Accept rate: 100.00%
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Unique molecules: 2
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Total families: 2
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Avg reads/molecule: 4.0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Median reads/molecule: 3
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Min reads/molecule: 3
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Max reads/molecule: 5
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Filtered out 0 records due to mapping issues.
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Filtered out 0 records that contained one or more Ns in their UMIs.
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Grouping reads by UMI completed: 8 in 0s (74 items/s)
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] group completed successfully
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Records processed by pipeline: 8
[INFO] [stdout] test test_simplex_command::test_simplex_command_with_stats ... ok
[INFO] [stdout] test test_simplex_command::test_simplex_command_collapses_read_group_attributes ... ok
[INFO] [stdout] test test_pipeline_concurrency::proptest_tests::proptest_reorder_buffer_preserves_all_items ... ok
[INFO] [stderr] [2026-03-30T01:22:16Z WARN  fgumi::commands::simplex] Consensus error for MI : Missing UMI tag 'MI' for read 'mol1_0'
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Extracting UMIs ...
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::common] Queue memory limit: 6.0 GiB total (768 MB/thread × 8 threads)
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Wrote output to /tmp/.tmpwMSVmm/output_file.bam
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] UMI Grouping Summary:
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Total records: 8
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Accepted records: 8
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Accept rate: 100.00%
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Unique molecules: 2
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Total families: 2
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Avg reads/molecule: 4.0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Median reads/molecule: 3
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Min reads/molecule: 3
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Max reads/molecule: 5
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Filtered out 0 records due to mapping issues.
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Filtered out 0 records that contained one or more Ns in their UMIs.
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Grouping reads by UMI completed: 8 in 0s (70 items/s)
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] group completed successfully
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Records processed by pipeline: 8
[INFO] [stdout] test test_streaming_input::test_group_command_with_dev_stdin_path ... ok
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::zipper] Starting zipper
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Zipping BAMs ...
[INFO] [stderr] Error: Invalid unmapped BAM file file '/tmp/.tmpPDEhhj/missing.unmapped.bam': File does not exist[2026-03-30T01:22:16Z INFO  fgumi::commands::consensus_runner] Overlapping consensus statistics:
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::consensus_runner]   Overlapping bases examined: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::consensus_runner]   Bases agreeing: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::consensus_runner]   Bases disagreeing: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::consensus_runner]   Bases corrected: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Consensus calling complete
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Total MI groups processed: 1
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Total groups processed by pipeline: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Consensus Calling Summary:
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Input reads: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Consensus reads: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Filtered reads: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Wrote 0 consensus reads
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Calling simplex consensus completed: 0 in 0s (0.0 items/min)
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::zipper] Starting zipper
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Zipping BAMs ...
[INFO] [stdout] test test_pipeline_concurrency::test_group_step_push_does_not_panic_under_contention ... ok
[INFO] [stdout] test test_zipper_command::test_zipper_bam_mapped_input ... ok
[INFO] [stderr] [2026-03-30T01:22:16Z WARN  fgumi::commands::duplex_metrics] R or required packages (ggplot2, scales) not available. Skipping PDF generation.
[INFO] [stdout] test test_duplex_metrics_command::test_duplex_metrics_command_umi_metrics ... ok
[INFO] [stderr] [2026-03-30T01:22:16Z WARN  fgumi::commands::duplex_metrics] To enable PDF generation, install R and required packages:
[INFO] [stderr] [2026-03-30T01:22:16Z WARN  fgumi::commands::duplex_metrics]   install.packages(c("ggplot2", "scales"))
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::duplex_metrics] Done!
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Computing duplex metrics completed: 9 in 2s (4 items/s)
[INFO] [stderr] [2026-03-30T01:22:16Z WARN  fgumi_sam] unmapped file /tmp/.tmpTR72kW/unmapped.bam does not appear to be queryname sorted per the SAM header.
[INFO] [stderr] [2026-03-30T01:22:16Z WARN  fgumi_sam] Continuing, but your output may be incorrect.
[INFO] [stderr] [2026-03-30T01:22:16Z WARN  fgumi_sam] mapped file /tmp/.tmpTR72kW/mapped.sam does not appear to be queryname sorted per the SAM header.
[INFO] [stderr] [2026-03-30T01:22:16Z WARN  fgumi_sam] Continuing, but your output may be incorrect.
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::zipper] Tags for removal: {"XY"}
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Grouping reads by UMI ...
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Starting group
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Input: -
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Output: /tmp/.tmpwMSVmm/output_pipe.bam
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Strategy: Identity
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Edits: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Using 2 threads
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Reading input BAM
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Input is template-coordinate sorted
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::common] Queue memory limit: 1.5 GiB total (768 MB/thread × 2 threads)
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Scheduler: BalancedChaseDrain
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::unified_pipeline::fastq] Pipeline counters: batches_read=2, batches_grouped=1, total_templates_pushed=100, total_records_serialized=200, templates_written=200
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::extract] Wrote 200 records via 7-step pipeline
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Extracting UMIs completed: 200 in 0s (1,044 items/s)
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi] Running fgumi version 0.1.2-bed85499d77512d1e0b8c2ac0106eeec031e49fd-dirty
[INFO] [stdout] test test_extract_command::test_parallel_parse_output_equivalence_across_threads ... ok
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::zipper] Starting zipper
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Zipping BAMs ...
[INFO] [stderr] [2026-03-30T01:22:16Z WARN  fgumi_sam] unmapped file /tmp/.tmpGtkbGG/unmapped.bam does not appear to be queryname sorted per the SAM header.
[INFO] [stderr] [2026-03-30T01:22:16Z WARN  fgumi_sam] Continuing, but your output may be incorrect.
[INFO] [stderr] [2026-03-30T01:22:16Z WARN  fgumi_sam] mapped file /tmp/.tmpGtkbGG/mapped.sam does not appear to be queryname sorted per the SAM header.
[INFO] [stderr] [2026-03-30T01:22:16Z WARN  fgumi_sam] Continuing, but your output may be incorrect.
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Calling simplex consensus ...
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Starting Simplex
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Input: -
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Output: /tmp/.tmprg1mzS/output_pipe.bam
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Min reads: 1
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Error rate pre-UMI: Q45
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Error rate post-UMI: Q40
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Overlapping consensus calling enabled
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Processing reads and calling consensus (streaming)...
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::common] Queue memory limit: 1.5 GiB total (768 MB/thread × 2 threads)
[INFO] [stderr] [2026-03-30T01:22:16Z WARN  fgumi::commands::duplex_metrics] R or required packages (ggplot2, scales) not available. Skipping PDF generation.
[INFO] [stderr] [2026-03-30T01:22:16Z WARN  fgumi::commands::duplex_metrics] To enable PDF generation, install R and required packages:
[INFO] [stderr] [2026-03-30T01:22:16Z WARN  fgumi::commands::duplex_metrics]   install.packages(c("ggplot2", "scales"))
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::duplex_metrics] Done!
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Computing duplex metrics completed: 9 in 2s (3 items/s)
[INFO] [stdout] test test_duplex_metrics_command::test_duplex_metrics_command_with_duplex_umi_counts ... ok
[INFO] [stdout] test test_sort_write_index::test_write_index_requires_coordinate_sort ... ok
[INFO] [stderr] [2026-03-30T01:22:16Z WARN  fgumi::commands::simplex] Consensus error for MI : Missing UMI tag 'MI' for read 'mol1_0'
[INFO] [stderr] [2026-03-30T01:22:16Z WARN  fgumi::commands::duplex_metrics] R or required packages (ggplot2, scales) not available. Skipping PDF generation.
[INFO] [stderr] [2026-03-30T01:22:16Z WARN  fgumi::commands::duplex_metrics] To enable PDF generation, install R and required packages:
[INFO] [stderr] [2026-03-30T01:22:16Z WARN  fgumi::commands::duplex_metrics]   install.packages(c("ggplot2", "scales"))
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::duplex_metrics] Done!
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Computing duplex metrics completed: 9 in 2s (3 items/s)
[INFO] [stdout] test test_duplex_metrics_command::test_duplex_metrics_command_duplex_family_sizes ... ok
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Wrote output to /tmp/.tmpwMSVmm/output_pipe.bam
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] UMI Grouping Summary:
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Total records: 8
[INFO] [stdout] test test_streaming_input::test_group_command_with_piped_input ... ok
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::progress] Processed records 2 (complete)
[INFO] [stdout] test test_review_command::test_review_missing_input_files ... ok
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Accepted records: 8
[INFO] [stdout] test test_zipper_command::test_zipper_basic_merge ... ok
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Accept rate: 100.00%
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Unique molecules: 2
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Total families: 2
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Avg reads/molecule: 4.0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Median reads/molecule: 3
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Min reads/molecule: 3
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Max reads/molecule: 5
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Filtered out 0 records due to mapping issues.
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Filtered out 0 records that contained one or more Ns in their UMIs.
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Grouping reads by UMI completed: 8 in 0s (45 items/s)
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] group completed successfully
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::zipper] zipper completed successfully
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::group] Records processed by pipeline: 8
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Zipping BAMs completed: 2 in 0s (18 items/s)
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::progress] Processed records 1 (complete)
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::zipper] zipper completed successfully
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Zipping BAMs completed: 1 in 0s (4 items/s)
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::consensus_runner] Overlapping consensus statistics:
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::consensus_runner]   Overlapping bases examined: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::consensus_runner]   Bases agreeing: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::consensus_runner]   Bases disagreeing: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::consensus_runner]   Bases corrected: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Consensus calling complete
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Total MI groups processed: 1
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Total groups processed by pipeline: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Consensus Calling Summary:
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Input reads: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Consensus reads: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging]   Filtered reads: 0
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::simplex] Wrote 0 consensus reads
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Calling simplex consensus completed: 0 in 0s (0.0 items/min)
[INFO] [stdout] test test_streaming_input::test_simplex_command_with_piped_input ... ok
[INFO] [stdout] test test_zipper_command::test_zipper_tag_removal ... ok
[INFO] [stderr] [2026-03-30T01:22:16Z WARN  fgumi::commands::duplex_metrics] R or required packages (ggplot2, scales) not available. Skipping PDF generation.
[INFO] [stderr] [2026-03-30T01:22:16Z WARN  fgumi::commands::duplex_metrics] To enable PDF generation, install R and required packages:
[INFO] [stderr] [2026-03-30T01:22:16Z WARN  fgumi::commands::duplex_metrics]   install.packages(c("ggplot2", "scales"))
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi::commands::duplex_metrics] Done!
[INFO] [stderr] [2026-03-30T01:22:16Z INFO  fgumi_lib::logging] Computing duplex metrics completed: 9 in 2s (3 items/s)
[INFO] [stdout] test test_duplex_metrics_command::test_duplex_metrics_command_family_sizes ... ok
[INFO] [stdout] test test_zipper_command::test_zipper_missing_input ... ok
[INFO] [stderr] 
[INFO] [stderr] 
[INFO] [stderr] Stack backtrace:
[INFO] [stderr]    0: <anyhow::Error as core::convert::From<fgumi_lib::errors::FgumiError>>::from
[INFO] [stderr]              at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/anyhow-1.0.102/src/backtrace.rs:10:14
[INFO] [stderr]    1: <core::result::Result<(), anyhow::Error> as core::ops::try_trait::FromResidual<core::result::Result<core::convert::Infallible, fgumi_lib::errors::FgumiError>>>::from_residual
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/result.rs:2189:27
[INFO] [stderr]    2: <fgumi::commands::zipper::Zipper as fgumi::commands::command::Command>::execute
[INFO] [stderr]              at ./src/commands/zipper.rs:777:9
[INFO] [stderr]    3: <fgumi::Subcommand as fgumi::commands::command::Command>::execute
[INFO] [stderr]              at ./src/main.rs:67:1
[INFO] [stderr]    4: fgumi::main
[INFO] [stderr]              at ./src/main.rs:156:21
[INFO] [stderr]    5: <fn() -> core::result::Result<(), anyhow::Error> as core::ops::function::FnOnce<()>>::call_once
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:250:5
[INFO] [stderr]    6: std::sys::backtrace::__rust_begin_short_backtrace::<fn() -> core::result::Result<(), anyhow::Error>, core::result::Result<(), anyhow::Error>>
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/sys/backtrace.rs:166:18
[INFO] [stderr]    7: std::rt::lang_start::<core::result::Result<(), anyhow::Error>>::{closure#0}
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/rt.rs:206:18
[INFO] [stderr]    8: <&dyn core::ops::function::Fn<(), Output = i32> + core::panic::unwind_safe::RefUnwindSafe + core::marker::Sync as core::ops::function::FnOnce<()>>::call_once
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/core/src/ops/function.rs:287:21
[INFO] [stderr]    9: std::panicking::catch_unwind::do_call::<&dyn core::ops::function::Fn<(), Output = i32> + core::panic::unwind_safe::RefUnwindSafe + core::marker::Sync, i32>
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:581:40
[INFO] [stderr]   10: std::panicking::catch_unwind::<i32, &dyn core::ops::function::Fn<(), Output = i32> + core::panic::unwind_safe::RefUnwindSafe + core::marker::Sync>
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:544:19
[INFO] [stderr]   11: std::panic::catch_unwind::<&dyn core::ops::function::Fn<(), Output = i32> + core::panic::unwind_safe::RefUnwindSafe + core::marker::Sync, i32>
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panic.rs:359:14
[INFO] [stderr]   12: std::rt::lang_start_internal::{closure#0}
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/rt.rs:175:24
[INFO] [stderr]   13: std::panicking::catch_unwind::do_call::<std::rt::lang_start_internal::{closure#0}, isize>
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:581:40
[INFO] [stderr]   14: std::panicking::catch_unwind::<isize, std::rt::lang_start_internal::{closure#0}>
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panicking.rs:544:19
[INFO] [stderr]   15: std::panic::catch_unwind::<std::rt::lang_start_internal::{closure#0}, isize>
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/panic.rs:359:14
[INFO] [stderr]   16: std::rt::lang_start_internal
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/rt.rs:171:5
[INFO] [stderr]   17: std::rt::lang_start::<core::result::Result<(), anyhow::Error>>
[INFO] [stderr]              at /rustc/0abe69e6c16114311cc2700e972492e64d69c28f/library/std/src/rt.rs:205:5
[INFO] [stderr]   18: main
[INFO] [stderr]   19: <unknown>
[INFO] [stderr]   20: __libc_start_main
[INFO] [stderr]   21: _start
[INFO] [stdout] test test_pipeline_concurrency::test_bam_pipeline_multithreaded_record_preservation ... ok
[INFO] [stderr] [2026-03-30T01:22:17Z WARN  fgumi::commands::duplex_metrics] R or required packages (ggplot2, scales) not available. Skipping PDF generation.
[INFO] [stderr] [2026-03-30T01:22:17Z WARN  fgumi::commands::duplex_metrics] To enable PDF generation, install R and required packages:
[INFO] [stderr] [2026-03-30T01:22:17Z WARN  fgumi::commands::duplex_metrics]   install.packages(c("ggplot2", "scales"))
[INFO] [stderr] [2026-03-30T01:22:17Z INFO  fgumi::commands::duplex_metrics] Done!
[INFO] [stderr] [2026-03-30T01:22:17Z INFO  fgumi_lib::logging] Computing duplex metrics completed: 9 in 1s (7 items/s)
[INFO] [stdout] test test_duplex_metrics_command::test_duplex_metrics_command_min_reads_parameters ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 135 passed; 0 failed; 7 ignored; 0 measured; 0 filtered out; finished in 3.33s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/integration_tests.rs (/opt/rustwide/target/debug/deps/integration_tests-f3995a1004890680)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test test_family_size_metrics_distribution ... ok
[INFO] [stdout] test test_format_percent_integration ... ok
[INFO] [stdout] test test_adjacency_assigner_with_error_correction ... ok
[INFO] [stdout] test test_format_duration_realistic ... ok
[INFO] [stderr]    Doc-tests fgumi_lib
[INFO] [stdout] test test_adjacency_respects_count_gradient ... ok
[INFO] [stdout] test test_format_rate_with_realistic_data ... ok
[INFO] [stdout] test test_identity_assigner_basic_workflow ... ok
[INFO] [stdout] test test_metrics_basic_fields ... ok
[INFO] [stdout] test test_umi_grouping_metrics_workflow ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 9 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] running 58 tests
[INFO] [stdout] test src/lib/bam_io.rs - bam_io::IndexingBamWriter (line 335) ... ignored
[INFO] [stdout] test src/lib/bam_io.rs - bam_io::create_bam_reader (line 675) - compile ... ok
[INFO] [stdout] test src/lib/bam_io.rs - bam_io::create_optional_bam_writer (line 814) - compile ... ok
[INFO] [stdout] test src/lib/bam_io.rs - bam_io::create_bam_reader_for_pipeline (line 971) - compile ... ok
[INFO] [stdout] test src/lib/fastq.rs - fastq (line 16) ... ignored
[INFO] [stdout] test src/lib/fastq.rs - fastq::ReadSetIterator (line 297) ... ignored
[INFO] [stdout] test src/lib/fastq.rs - fastq::ReadSetIterator::new (line 355) ... ignored
[INFO] [stdout] test src/lib/grouper.rs - grouper::TemplateGrouper (line 151) ... ignored
[INFO] [stdout] test src/lib/logging.rs - logging::OperationTimer (line 232) - compile ... ok
[INFO] [stdout] test src/lib/bam_io.rs - bam_io::create_bam_writer (line 766) - compile ... ok
[INFO] [stdout] test src/lib/logging.rs - logging::log_consensus_summary (line 120) - compile ... ok
[INFO] [stdout] test src/lib/logging.rs - logging::log_umi_grouping_summary (line 170) - compile ... ok
[INFO] [stdout] test src/lib/mi_group.rs - mi_group::MiGroupIterator (line 22) ... ignored
[INFO] [stdout] test src/lib/mi_group.rs - mi_group::MiGroupIteratorWithTransform (line 188) ... ignored
[INFO] [stdout] test src/lib/mi_group.rs - mi_group::MiGrouper (line 485) ... ignored
[INFO] [stdout] test src/lib/mi_group.rs - mi_group::MiGrouper (line 495) ... ignored
[INFO] [stdout] test src/lib/mod.rs - (line 41) - compile ... ok
[INFO] [stdout] test src/lib/mod.rs - (line 56) - compile ... ok
[INFO] [stdout] test src/lib/mod.rs - (line 69) - compile ... ok
[INFO] [stdout] test src/lib/progress.rs - progress::ProgressTracker (line 15) ... ok
[INFO] [stdout] test src/lib/logging.rs - logging::format_duration (line 48) ... ok
[INFO] [stdout] test src/lib/reference.rs - reference::ReferenceReader::fetch (line 265) - compile ... ok
[INFO] [stdout] test src/lib/logging.rs - logging::format_percent (line 24) ... ok
[INFO] [stdout] test src/lib/logging.rs - logging::format_rate (line 85) ... ok
[INFO] [stdout] test src/lib/reference.rs - reference::ReferenceReader::base_at (line 320) - compile ... ok
[INFO] [stdout] test src/lib/bam_io.rs - bam_io::is_stdout_path (line 858) ... ok
[INFO] [stdout] test src/lib/reference.rs - reference::ReferenceReader::new (line 176) - compile ... ok
[INFO] [stdout] test src/lib/reference.rs - reference::find_dict_path (line 132) - compile ... ok
[INFO] [stdout] test src/lib/progress.rs - progress::ProgressTracker::log_final (line 134) ... ok
[INFO] [stdout] test src/lib/template.rs - template (line 24) ... ignored
[INFO] [stdout] test src/lib/template.rs - template::Builder (line 97) ... ignored
[INFO] [stdout] test src/lib/template.rs - template::Template::into_primary_reads (line 463) ... ignored
[INFO] [stdout] test src/lib/template.rs - template::Template::pair_orientation (line 811) ... ignored
[INFO] [stdout] test src/lib/template.rs - template::TemplateIterator (line 1395) ... ignored
[INFO] [stdout] test src/lib/unified_pipeline/base.rs - unified_pipeline::base::MemoryTracker (line 402) ... ignored
[INFO] [stdout] test src/lib/unified_pipeline/base.rs - unified_pipeline::base::ReorderBufferState (line 687) ... ignored
[INFO] [stdout] test src/lib/progress.rs - progress::ProgressTracker::log_if_needed (line 94) ... ok
[INFO] [stdout] test src/lib/unified_pipeline/base.rs - unified_pipeline::base::WorkerCoreState (line 1865) ... ignored
[INFO] [stdout] test src/lib/unified_pipeline/base.rs - unified_pipeline::base::WorkerStateCommon (line 4142) ... ignored
[INFO] [stdout] test src/lib/unified_pipeline/base.rs - unified_pipeline::base::run_monitor_loop (line 2152) ... ignored
[INFO] [stdout] test src/lib/unified_pipeline/queue.rs - unified_pipeline::queue::OrderedQueue (line 42) ... ignored
[INFO] [stdout] test src/lib/unified_pipeline/rebalancer.rs - unified_pipeline::rebalancer::DynamicRebalancer (line 51) ... ignored
[INFO] [stdout] test src/lib/validation.rs - validation::validate_files_exist (line 52) - compile ... ok
[INFO] [stdout] test src/lib/vendored/bam_codec/mod.rs - vendored::bam_codec (line 23) ... ignored
[INFO] [stdout] test src/lib/vendored/bam_codec/mod.rs - vendored::bam_codec (line 8) ... ignored
[INFO] [stdout] test src/lib/reorder_buffer.rs - reorder_buffer (line 9) ... ok
[INFO] [stdout] test src/lib/validation.rs - validation::validate_error_rate (line 214) ... ok
[INFO] [stdout] test src/lib/validation.rs - validation::validate_positive (line 265) ... ok
[INFO] [stdout] test src/lib/validation.rs - validation::validate_file_exists (line 24) ... ok
[INFO] [stdout] test src/lib/progress.rs - progress::ProgressTracker (line 29) ... ok
[INFO] [stdout] test src/lib/mod.rs - (line 87) ... ok
[INFO] [stdout] test src/lib/validation.rs - validation::validate_tag (line 82) ... ok
[INFO] [stdout] test src/lib/validation.rs - validation::optional_string_to_tag (line 142) ... ok
[INFO] [stdout] test src/lib/validation.rs - validation::validate_quality_score (line 240) ... ok
[INFO] [stdout] test src/lib/validation.rs - validation::validate_min_max (line 173) ... ok
[INFO] [stdout] test src/lib/bam_io.rs - bam_io::is_stdin_path (line 840) ... ok
[INFO] [stdout] test src/lib/reorder_buffer.rs - reorder_buffer::ReorderBuffer<T>::drain_ready (line 172) ... ok
[INFO] [stdout] test src/lib/validation.rs - validation::string_to_tag (line 117) ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 35 passed; 0 failed; 23 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stdout] all doctests ran in 2.27s; merged doctests compilation took 2.18s
[INFO] running `Command { std: "docker" "inspect" "5f885291b28db3af42711b552c226fb780b6328490cf55499de612164403776c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5f885291b28db3af42711b552c226fb780b6328490cf55499de612164403776c", kill_on_drop: false }`
[INFO] [stdout] 5f885291b28db3af42711b552c226fb780b6328490cf55499de612164403776c
